Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions servers/mcp-toolz/server.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: mcp-toolz
image: mcp/mcp-toolz
type: server
meta:
category: productivity
tags:
- context-management
- todo
- persistence
- claude-code
- ai-assistant
- session-continuity
about:
title: MCP Toolz
description: Context management, todo persistence, and multi-AI perspectives for Claude Code. Share contexts and todos across sessions, get feedback from ChatGPT, Claude, Gemini, and DeepSeek.
icon: https://avatars.githubusercontent.com/u/1024025?v=4
source:
project: https://github.com/taylorleese/mcp-toolz
commit: f75aa7fbbdca854b7cb7521ce74065e02daa7435
config:
description: Configure MCP Toolz with optional API keys for AI second opinions
secrets:
- name: mcp-toolz.openai_api_key
env: OPENAI_API_KEY
example: sk-...
optional: true
- name: mcp-toolz.anthropic_api_key
env: ANTHROPIC_API_KEY
example: sk-ant-...
optional: true
- name: mcp-toolz.google_api_key
env: GOOGLE_API_KEY
example: AIza...
optional: true
- name: mcp-toolz.deepseek_api_key
env: DEEPSEEK_API_KEY
example: sk-...
optional: true
env:
- name: MCP_TOOLS_DB_PATH
example: /data/contexts.db
value: '{{mcp-toolz.db_path}}'
optional: true
- name: MCP_TOOLS_MODEL
example: gpt-5
value: '{{mcp-toolz.openai_model}}'
optional: true
- name: MCP_TOOLS_CLAUDE_MODEL
example: claude-sonnet-4-5-20250929
value: '{{mcp-toolz.claude_model}}'
optional: true
- name: MCP_TOOLS_GEMINI_MODEL
example: gemini-2.0-flash-thinking-exp-01-21
value: '{{mcp-toolz.gemini_model}}'
optional: true
- name: MCP_TOOLS_DEEPSEEK_MODEL
example: deepseek-chat
value: '{{mcp-toolz.deepseek_model}}'
optional: true
parameters:
type: object
properties:
db_path:
type: string
description: Path to SQLite database for contexts and todos
default: /home/app/.mcp-toolz/contexts.db
openai_model:
type: string
description: OpenAI model to use for ChatGPT responses
default: gpt-5
claude_model:
type: string
description: Anthropic model to use for Claude responses
default: claude-sonnet-4-5-20250929
gemini_model:
type: string
description: Google model to use for Gemini responses
default: gemini-2.0-flash-thinking-exp-01-21
deepseek_model:
type: string
description: DeepSeek model to use for DeepSeek responses
default: deepseek-chat
262 changes: 262 additions & 0 deletions servers/mcp-toolz/tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
[
{
"name": "context_search",
"description": "Search Claude Code contexts by query string or tags",
"arguments": [
{
"name": "query",
"type": "string",
"description": "Search query"
},
{
"name": "tags",
"type": "array",
"description": "Filter by tags"
},
{
"name": "type",
"type": "string",
"description": "Filter by type (conversation, code, suggestion, error)"
},
{
"name": "limit",
"type": "integer",
"description": "Maximum number of results (default: 10)"
}
]
},
{
"name": "context_get",
"description": "Get full details of a specific context by ID",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID"
}
]
},
{
"name": "context_list",
"description": "List recent Claude Code contexts",
"arguments": [
{
"name": "limit",
"type": "integer",
"description": "Maximum number of results (default: 20)"
},
{
"name": "type",
"type": "string",
"description": "Filter by type (conversation, code, suggestion, error)"
}
]
},
{
"name": "context_save",
"description": "Save a new context entry for the current project",
"arguments": [
{
"name": "type",
"type": "string",
"description": "Context type (conversation, code, suggestion, error)"
},
{
"name": "title",
"type": "string",
"description": "Context title"
},
{
"name": "content",
"type": "string",
"description": "Context content"
},
{
"name": "tags",
"type": "array",
"description": "Tags for categorization"
},
{
"name": "session_context_id",
"type": "string",
"description": "Link to existing context ID"
}
]
},
{
"name": "context_delete",
"description": "Delete a specific context by ID",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID to delete"
}
]
},
{
"name": "todo_search",
"description": "Search todo snapshots by content or context description",
"arguments": [
{
"name": "query",
"type": "string",
"description": "Search query"
},
{
"name": "project_path",
"type": "string",
"description": "Filter by project path"
},
{
"name": "limit",
"type": "integer",
"description": "Maximum number of results (default: 10)"
}
]
},
{
"name": "todo_get",
"description": "Get full details of a specific todo snapshot by ID",
"arguments": [
{
"name": "snapshot_id",
"type": "string",
"description": "Todo snapshot ID"
}
]
},
{
"name": "todo_list",
"description": "List recent todo snapshots",
"arguments": [
{
"name": "limit",
"type": "integer",
"description": "Maximum number of results (default: 20)"
},
{
"name": "project_path",
"type": "string",
"description": "Filter by project path"
}
]
},
{
"name": "todo_save",
"description": "Save a new todo snapshot",
"arguments": [
{
"name": "todos",
"type": "array",
"description": "List of todo items with content, status, and activeForm"
},
{
"name": "project_path",
"type": "string",
"description": "Project path (defaults to current directory)"
},
{
"name": "context",
"type": "string",
"description": "Description of what you're working on"
},
{
"name": "session_context_id",
"type": "string",
"description": "Link to existing context ID"
}
]
},
{
"name": "todo_restore",
"description": "Get todo snapshot for restoring (active snapshot or specific ID)",
"arguments": [
{
"name": "snapshot_id",
"type": "string",
"description": "Specific snapshot ID (optional, defaults to active snapshot)"
},
{
"name": "project_path",
"type": "string",
"description": "Project path (used if snapshot_id not provided)"
}
]
},
{
"name": "todo_delete",
"description": "Delete a specific todo snapshot by ID",
"arguments": [
{
"name": "snapshot_id",
"type": "string",
"description": "Todo snapshot ID to delete"
}
]
},
{
"name": "ask_chatgpt",
"description": "Ask ChatGPT a question about a context entry, or get a general second opinion",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID to ask about"
},
{
"name": "question",
"type": "string",
"description": "Optional specific question to ask about the context"
}
]
},
{
"name": "ask_claude",
"description": "Ask Claude a question about a context entry, or get a general second opinion",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID to ask about"
},
{
"name": "question",
"type": "string",
"description": "Optional specific question to ask about the context"
}
]
},
{
"name": "ask_gemini",
"description": "Ask Google Gemini a question about a context entry, or get a general second opinion",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID to ask about"
},
{
"name": "question",
"type": "string",
"description": "Optional specific question to ask about the context"
}
]
},
{
"name": "ask_deepseek",
"description": "Ask DeepSeek a question about a context entry, or get a general second opinion",
"arguments": [
{
"name": "context_id",
"type": "string",
"description": "Context ID to ask about"
},
{
"name": "question",
"type": "string",
"description": "Optional specific question to ask about the context"
}
]
}
]