colin.mcp.github in templates.
Configuration
MCP providers require aname field—there is no default MCP provider. Each entry in colin.toml defines a named server instance:
colin.toml
name field determines the template namespace. A server named github becomes accessible as colin.mcp.github, while linear becomes colin.mcp.linear.
Colin starts server processes when entering the provider lifespan and terminates them on shutdown.
| Field | Description |
|---|---|
name | Required. Identifier used in templates as colin.mcp.<name> |
command | Executable to run for stdio servers |
args | Command-line arguments as an array |
env | Environment variables passed to the server |
url | Server endpoint URL for remote servers |
headers | HTTP headers for remote server authentication |
Stdio Servers
Local process servers communicate via stdin/stdout. Specify the executable and arguments:colin.toml
colin.toml
${VAR} syntax. Colin substitutes values from your environment when starting the server:
colin.toml
Remote Servers
HTTP and SSE servers connect over the network instead of spawning a local process:colin.toml
colin.toml
Template Functions
Each MCP server exposes these functions through its namespace:| Function | Purpose |
|---|---|
resource() | Fetch a resource from the server |
list_resources() | List available resources |
list_skills() | Discover skills from skill servers |
prompt() | Retrieve a prompt template from the server |
list_tools() | List available tools |
server_info() | Get server metadata |
Resource
Usecolin.mcp.<name>.resource() to fetch content from a server:
models/sources/readme.md
MCPResource object with content and metadata:
| Property | Description |
|---|---|
.content | The resource content as a string |
.name | Resource name from the server |
.uri | Full MCP URI for tracking |
.description | Optional description from server |
.updated | Last update timestamp |
Prompt
Some MCP servers provide prompt templates. Usecolin.mcp.<name>.prompt() to retrieve them:
models/analysis.md
MCPPrompt object with similar properties to MCPResource. Prompt arguments are passed as keyword parameters after the prompt name.
List Resources
Usecolin.mcp.<name>.list_resources() to discover available resources from a server:
MCPResourceInfo objects with lightweight metadata (no content fetched):
| Property | Type | Description |
|---|---|---|
uri | str | Full MCP URI |
name | str | None | Resource name |
description | str | None | Optional description |
mime_type | str | None | MIME type |
List Skills
For MCP servers that serve skills using theskill:// scheme (like FastMCP skill servers), use list_skills() to discover and download skills:
- Finds resources matching
skill://{name}/SKILL.md - Fetches manifests from
skill://{name}/_manifest - Returns
SkillInfoobjects with file lists
| Property | Type | Description |
|---|---|---|
name | str | Skill identifier |
description | str | None | Skill description |
files | list[SkillFileInfo] | Files in the skill |
SkillFileInfo has:
| Property | Type | Description |
|---|---|---|
path | str | Relative file path |
hash | str | None | Content hash for change detection |
list_skills() with resource() to download skill content:
Objects
The MCP provider introduces these domain objects: MCPResource - Returned byresource():
| Property | Type | Description |
|---|---|---|
uri | str | Full MCP URI |
content | str | Resource content |
name | str | Resource name |
description | str | None | Optional description |
prompt():
| Property | Type | Description |
|---|---|---|
content | str | Prompt content |
name | str | Prompt name |
arguments | dict | Arguments passed to the prompt |
description | str | None | Optional description |
list_resources():
| Property | Type | Description |
|---|---|---|
uri | str | Full MCP URI |
name | str | None | Resource name |
description | str | None | Optional description |
mime_type | str | None | MIME type |
list_skills():
| Property | Type | Description |
|---|---|---|
name | str | Skill identifier |
description | str | None | Skill description |
files | list[SkillFileInfo] | Files in the skill |
| Property | Type | Description |
|---|---|---|
path | str | Relative file path |
hash | str | None | Content hash |
Dependency Tracking
MCP resources integrate with Colin’s dependency system. Wrap results withref() to record dependencies in the manifest:
CLI Commands
The CLI provides commands for MCP server management:test command starts the server and lists available resources, helping discover the correct URIs for your documents.
Combining Sources
MCP resources work alongside other providers and local documents:models/skills/engineering-status.md