MCP Integration
Gyrus includes a built-in MCP (Model Context Protocol) server that exposes your knowledge and ADR tools to AI agents. This allows any MCP-compatible tool to read, search, create, and update your notes.
What is MCP?
The Model Context Protocol is a standard for connecting AI models to external tools and data sources. Instead of each AI tool implementing its own plugin system, MCP provides a unified interface.
Gyrus acts as an MCP server, exposing tools that AI clients (like Claude, Cursor, or Zed) can call.
Starting the MCP Server
Start the MCP server with:
gyrus mcpThis runs an MCP server over stdio, which is the standard transport for local MCP integrations.
Options
# Use a specific workspace
gyrus mcp --workspace workConfiguring AI Clients
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gyrus": {
"command": "gyrus",
"args": ["mcp"]
}
}
}Cursor
Add to your Cursor MCP settings (usually in .cursor/mcp.json):
{
"mcpServers": {
"gyrus": {
"command": "gyrus",
"args": ["mcp"]
}
}
}Zed Editor
Add to your Zed settings (~/.config/zed/settings.json):
{
"context_servers": {
"gyrus": {
"command": {
"path": "gyrus",
"args": ["mcp"]
}
}
}
}VS Code with Continue
Add to your Continue configuration:
{
"mcpServers": [
{
"name": "gyrus",
"command": "gyrus",
"args": ["mcp"]
}
]
}Available Tools
Workspace Management
gyrus_list
List all registered workspaces.
Parameters: None required
Returns: Array of workspaces with name, path, description, and available features.
gyrus_switch
Switch the active workspace for the current session.
Parameters:
name(required): The workspace name to switch to
Example:
{ "name": "work" }Knowledge Tools
knowledge_list
List all knowledge notes with optional filtering.
Parameters:
workspace(optional): Target workspace namecategory(optional): Filter by category (projects, patterns, tools, gotchas, decisions)tags(optional): Filter by tags (matches notes with any of these tags)
Example:
{ "category": "patterns", "tags": ["reliability"] }knowledge_read
Read a specific knowledge note by ID or path.
Parameters:
id(optional): The note's unique identifierpath(optional): The relative file pathworkspace(optional): Target workspace name
At least one of id or path must be provided.
Example:
{ "id": "pattern-retry-with-backoff" }knowledge_search
Search knowledge notes by text, tags, or category.
Parameters:
query(optional): Text to search in titles, content, and descriptionscategory(optional): Filter by categorytags(optional): Filter by tagsworkspace(optional): Target workspace name
At least one search parameter must be provided.
Example:
{ "query": "authentication", "tags": ["security"] }knowledge_create
Create a new knowledge note.
Parameters:
id(required): Unique identifier in kebab-casetitle(required): Human-readable titlecategory(required): Category folder (projects, patterns, tools, gotchas, decisions)content(required): Markdown content (without frontmatter)description(optional): Brief descriptiontags(optional): Tags for categorizationrelated(optional): IDs of related notesworkspace(optional): Target workspace name
Example:
{
"id": "pattern-circuit-breaker",
"title": "Circuit Breaker Pattern",
"category": "patterns",
"content": "# Circuit Breaker Pattern\n\nPrevent cascading failures by failing fast...",
"tags": ["patterns", "reliability"]
}knowledge_update
Update an existing knowledge note.
Parameters:
id(required): The note's unique identifiertitle(optional): New titlecontent(optional): New markdown contentdescription(optional): New descriptiontags(optional): New tags (replaces existing)related(optional): New related note IDs (replaces existing)workspace(optional): Target workspace name
Only provided fields are updated. The updated date is automatically set.
Example:
{
"id": "pattern-circuit-breaker",
"tags": ["patterns", "reliability", "microservices"]
}ADR Tools
adr_list
List all Architecture Decision Records with optional filtering.
Parameters:
workspace(optional): Target workspace namestatus(optional): Filter by status (todo, in-progress, in-review, blocked, completed, deprecated)type(optional): Filter by type (enhancement, debug, research)tags(optional): Filter by tags
Example:
{ "status": "in-progress", "type": "enhancement" }adr_read
Read a specific ADR by name.
Parameters:
name(required): ADR filename (without .md) or partial matchworkspace(optional): Target workspace name
Example:
{ "name": "oauth-authentication" }adr_search
Search ADRs by text, status, type, or tags.
Parameters:
query(optional): Text to search in titles, descriptions, and contentstatus(optional): Filter by statustype(optional): Filter by typetags(optional): Filter by tagsworkspace(optional): Target workspace name
Example:
{ "query": "database", "status": "completed" }adr_create
Create a new Architecture Decision Record.
Parameters:
title(required): Human-readable titletype(required): ADR type (enhancement, debug, research)workingFolder(required): Full path to the project working folderdescription(optional): Brief descriptionstatus(optional): Initial status (defaults to 'todo')tags(optional): Tags for categorizationcontent(optional): Custom content (uses default template if not provided)workspace(optional): Target workspace name
Example:
{
"title": "OAuth Authentication",
"type": "enhancement",
"workingFolder": "/Users/name/project",
"description": "Add OAuth 2.0 authentication to the API",
"tags": ["api", "security"]
}adr_update
Update an existing ADR.
Parameters:
name(required): ADR to update (partial match supported)status(optional): New statustitle(optional): New titledescription(optional): New descriptioncontent(optional): New contenttags(optional): New tagstype(optional): New typeworkingFolder(optional): New working folderworkspace(optional): Target workspace name
Example:
{
"name": "oauth-authentication",
"status": "in-progress"
}Skill Tools
skill_list
List all skills with optional filtering.
Parameters:
workspace(optional): Target workspace nametags(optional): Filter by tags
Example:
{ "tags": ["typescript", "quality"] }skill_read
Read a specific skill by name.
Parameters:
name(required): The skill name (e.g., 'code-review')workspace(optional): Target workspace name
Example:
{ "name": "code-review" }skill_search
Search skills by text, tags, or trigger.
Parameters:
query(optional): Text to search in names, titles, content, and descriptionstags(optional): Filter by tagstrigger(optional): Filter by trigger pattern (e.g., '/code-review')workspace(optional): Target workspace name
Example:
{ "query": "testing", "tags": ["quality"] }Or by trigger:
{ "trigger": "/code-review" }skill_create
Create a new skill.
Parameters:
name(required): Unique name in kebab-casetitle(required): Human-readable titlecontent(required): Markdown content (without frontmatter)description(optional): Brief descriptiontags(optional): Tags for categorizationtriggers(optional): Trigger patterns that activate this skillapplyTo(optional): File patterns this skill applies torelated(optional): Names of related skillsworkspace(optional): Target workspace name
Example:
{
"name": "code-review",
"title": "Code Review Guide",
"content": "# Code Review\n\nWhen reviewing code, follow these guidelines...",
"tags": ["quality", "review"],
"triggers": ["/code-review", "/review"]
}skill_update
Update an existing skill.
Parameters:
name(required): The skill name to updatetitle(optional): New titlecontent(optional): New contentdescription(optional): New descriptiontags(optional): New tags (replaces existing)triggers(optional): New triggers (replaces existing)applyTo(optional): New applyTo patterns (replaces existing)related(optional): New related skill names (replaces existing)workspace(optional): Target workspace name
Example:
{
"name": "code-review",
"tags": ["quality", "review", "process"]
}Example Workflows
Knowledge Capture
User: I just figured out how to handle rate limits in the Stripe API.
Agent: I'll save that to your knowledge base.
[calls knowledge_create]
id: "gotcha-stripe-rate-limits"
title: "Stripe API Rate Limits"
category: "gotchas"
content: "..."
tags: ["stripe", "api", "rate-limiting"]Spec-Driven Development
User: I want to add user authentication to the app.
Agent: Let me create an ADR to plan this feature.
[calls adr_create]
title: "User Authentication"
type: "enhancement"
workingFolder: "/Users/name/myapp"
Agent: I've created the ADR. Let me research the options and update it.
[calls adr_update with research findings]
User: Looks good. Let's start implementing.
Agent: Updating status to in-progress.
[calls adr_update]
name: "user-authentication"
status: "in-progress"Cross-Session Context
User: What do we know about the payment system?
Agent: Let me search your knowledge base.
[calls knowledge_search]
query: "payment"
Agent: I found 3 relevant notes:
- tool-stripe: Stripe integration notes
- gotcha-stripe-webhooks: Webhook handling pitfalls
- pattern-idempotency: Idempotent payment processing
Would you like me to read any of these?Loading a Skill
User: Review this code using our review guidelines.
Agent: Let me load the code review skill.
[calls skill_read]
name: "code-review"
Agent: Using the code review guidelines, I'll check:
- Code follows project conventions
- Tests are included
- Error handling is appropriate
...Troubleshooting
Server Not Starting
Check that Gyrus is installed and accessible:
which gyrus
gyrus --versionTools Not Appearing
Ensure your MCP client configuration is correct. Restart the client after changing configuration.
Wrong Workspace
Use gyrus_switch to change workspaces, or specify workspace parameter in each tool call.
Next Steps
- Knowledge Notes — Learn about note structure
- ADRs — Track architectural decisions
- Skills — Create reusable AI instructions
- Commands Reference — Full CLI documentation