MCP Tools
MCP Toolz
mcp-name: io.github.taylorleese/mcp-toolz
다중 LLM 피드백 도구를 제공하는 Claude Code용 MCP 서버입니다.
기능
다중 LLM 피드백: ChatGPT(OpenAI), Claude(Anthropic), Gemini(Google), DeepSeek로부터 교차 검증 의견을 얻을 수 있습니다.
MCP 통합: Model Context Protocol을 통해 Claude Code와 연동됩니다.
Related MCP server: Memory MCP
빠른 시작
설치
PyPI를 통한 설치 (권장)
pip install mcp-toolz소스에서 설치 (개발용)
# Clone the repository
git clone https://github.com/taylorleese/mcp-toolz.git
cd mcp-toolz
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # macOS/Linux
# or: venv\Scripts\activate # Windows
# Install in editable mode with dev dependencies
pip install -e ".[dev]"구성
# Set your API keys as environment variables (at least one required for AI feedback tools)
export OPENAI_API_KEY=sk-... # For ChatGPT
export ANTHROPIC_API_KEY=sk-ant-... # For Claude
export GOOGLE_API_KEY=... # For Gemini
export DEEPSEEK_API_KEY=sk-... # For DeepSeek
# Or create a .env file (if installing from source)
cp .env.example .env
# Edit .env and add your API keysMCP 서버 설정
Claude Code MCP 설정에 추가하세요:
pip을 통해 설치한 경우:
{
"mcpServers": {
"mcp-toolz": {
"command": "python",
"args": ["-m", "mcp_server"],
"env": {
"OPENAI_API_KEY": "sk-...",
"ANTHROPIC_API_KEY": "sk-ant-...",
"GOOGLE_API_KEY": "...",
"DEEPSEEK_API_KEY": "sk-..."
}
}
}
}소스에서 설치한 경우:
{
"mcpServers": {
"mcp-toolz": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "/absolute/path/to/mcp-toolz",
"env": {
"PYTHONPATH": "/absolute/path/to/mcp-toolz/src"
}
}
}
}Claude Code를 재시작하여 MCP 서버를 로드하세요.
MCP 서버 도구
AI 피드백 도구
코드, 아키텍처 결정 및 구현 계획에 대해 여러 LLM으로부터 교차 검증 의견을 얻으세요:
ask_chatgpt- ChatGPT의 분석을 얻습니다 (사용자 지정 질문 지원)ask_claude- Claude의 분석을 얻습니다 (사용자 지정 질문 지원)ask_gemini- Gemini의 분석을 얻습니다 (사용자 지정 질문 지원)ask_deepseek- DeepSeek의 분석을 얻습니다 (사용자 지정 질문 지원)
Claude Code 기술
/resolve-github-alerts
GitHub 보안 알림(Dependabot, 코드 스캔, 시크릿 스캔)을 자동으로 분류하고 해결합니다. Claude Code에서 실행하여 다음을 수행하세요:
실패한 Dependabot PR 수정 (린트/테스트 문제)
취약한 종속성 업데이트 및 요구 사항 재컴파일
코드 스캔 및 시크릿 스캔 알림 수정
수동 검토를 위해 모든 수정 사항이 포함된 단일 PR 제출
/resolve-github-alerts사용 예시
여러 AI 관점 얻기
I'm deciding between Redis and Memcached for caching user sessions.
Ask ChatGPT for their analysis.다음과 같이 후속 질문을 하세요:
"비교를 위해 Claude에게 같은 질문을 해줘"
"Gemini에게 다른 관점을 물어봐"
"이것에 대해 DeepSeek는 어떻게 생각해?"
여러 관점으로 디버깅하기
I'm getting "TypeError: Cannot read property 'map' of undefined" in my React component.
The error occurs in UserList.jsx when rendering the users array.
Ask ChatGPT and Claude for debugging suggestions.환경 변수
# Required (at least one for AI feedback tools)
OPENAI_API_KEY=sk-... # Your OpenAI API key
ANTHROPIC_API_KEY=sk-ant-... # Your Anthropic API key
GOOGLE_API_KEY=... # Your Google API key (for Gemini)
DEEPSEEK_API_KEY=sk-... # Your DeepSeek API key
# Optional
MCP_TOOLZ_MODEL=gpt-5 # OpenAI model (default: gpt-5)
MCP_TOOLZ_CLAUDE_MODEL=claude-sonnet-4-5-20250929 # Claude model
MCP_TOOLZ_GEMINI_MODEL=gemini-2.0-flash-thinking-exp-01-21 # Gemini model
MCP_TOOLZ_DEEPSEEK_MODEL=deepseek-chat # DeepSeek model문제 해결
"Error 401: Invalid API key"
.env파일이나 환경 변수에 API 키가 설정되어 있는지 확인하세요.API 제공업체 계정에서 결제가 활성화되어 있는지 확인하세요.
"No module named context_manager"
Python을 직접 실행하기 전에
PYTHONPATH=src를 사용하세요.또는 pip을 통해 설치하세요:
pip install mcp-toolz
프로젝트 구조
mcp-toolz/
├── src/
│ ├── mcp_server/ # MCP server for Claude Code
│ │ └── server.py # MCP tools and handlers
│ └── context_manager/ # Client implementations
│ ├── openai_client.py # ChatGPT API client
│ ├── anthropic_client.py # Claude API client
│ ├── gemini_client.py # Gemini API client
│ └── deepseek_client.py # DeepSeek API client
├── tests/ # pytest tests
├── requirements.in
└── requirements.txt개발
기여자 설정
# Clone and install
git clone https://github.com/taylorleese/mcp-toolz.git
cd mcp-toolz
python3 -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt
# Install pre-commit hooks (IMPORTANT!)
pre-commit install
# Copy and configure .env
cp .env.example .env
# Edit .env with your API keys테스트 실행
source venv/bin/activate
pytest코드 품질
# Run all checks (runs automatically on commit after pre-commit install)
pre-commit run --all-files
# Individual tools
black .
ruff check .
mypy src/라이선스
MIT
Available Tools
3 toolsask_chatgptA
Ask ChatGPT a question about a context, or get a general second opinion
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | The context text to analyze or ask about | |
| question | No | Optional specific question to ask about the context. If not provided, gets a general second opinion. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as response format, latency, or limitations. The description is minimal, leaving the agent uninformed about important behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and efficient, though very short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should cover return values or usage constraints. It does not, leaving the agent with incomplete context for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by explaining that the 'question' parameter is optional and that omitting it results in a general second opinion. This enhances understanding of parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Ask ChatGPT a question about a context, or get a general second opinion'. It explicitly names the AI model and differentiates from sibling tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for asking questions or obtaining second opinions, but lacks explicit guidance on when to prefer this tool over siblings or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_deepseekB
Ask DeepSeek a question about a context, or get a general second opinion
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | The context text to analyze or ask about | |
| question | No | Optional specific question to ask about the context. If not provided, gets a general second opinion. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose behavioral traits like response format, error handling, or required permissions. Only states basic function without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is one clear sentence that front-loads the main action. Could be slightly expanded but is efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and no output schema, the description is minimal but adequate for a simple query tool. However, it lacks details on response behavior, limiting full context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions, and the tool description adds value by clarifying the optional nature of question (general opinion when omitted). Baseline 3 with added context yields 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Ask DeepSeek a question' and differentiates from general second opinion. It implicitly distinguishes from siblings (ask_chatgpt, ask_gemini) by naming DeepSeek but does not explicitly contrast use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings. The phrase 'get a general second opinion' hints at use case but no when-not-to-use or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_geminiB
Ask Google Gemini a question about a context, or get a general second opinion
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | The context text to analyze or ask about | |
| question | No | Optional specific question to ask about the context. If not provided, gets a general second opinion. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only mentions the action and modes, omitting details such as whether the tool is stateless, rate limits, permission requirements, or what happens if context is malformed. Minimal behavioral information is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose and primary use cases, earning a perfect score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description minimally covers the input and purpose but omits what the agent can expect as a return value or any error handling. Given the lack of annotations and output schema, the description could be more complete, though it is adequate for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already explains both parameters (context and question) adequately. The description's phrase 'general second opinion' partly echoes the schema's default behavior for missing question, adding little extra meaning. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (ask Gemini) and resource (Google Gemini), with two distinct use cases: asking a question about a context or getting a general second opinion. However, it does not explicitly differentiate from sibling tools like ask_chatgpt or ask_deepseek, relying on the name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies two usage modes but provides no guidance on when to use this tool over its siblings (ask_chatgpt, ask_deepseek) or when to choose one mode over the other. There are no explicit when-to-use or when-not-to-use instructions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.6.1- First observed
ask_chatgpt - First observed
ask_deepseek - First observed
ask_gemini
TDQS
Scored across 3 tools
All three tools have nearly identical descriptions, only differing by the AI model name. An agent would struggle to choose between them without additional context on model preferences.
All tools follow a consistent 'ask_{model}' pattern, making naming predictable and clear.
Three tools is reasonable for a server that simply provides access to multiple AI models. It is slightly minimal but not out of place.
The tool set covers the core function of querying different AI models, but lacks features like conversation history, context management, or parameter customization, which are notable gaps.
Maintenance
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Shared memory for AI tools: save once, recall word for word from Claude, ChatGPT, Codex or Gemini.
Shared memory for AI coding agents. Save once, reuse from Cursor, Claude Code, Codex.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides persistent context management for Claude AI coding assistants, allowing you to save and restore conversation context, create checkpoints, and organize information across sessions to prevent losing important work history and decisions during long coding sessions.264 npm136MIT
- AlicenseAqualityBmaintenanceProvides persistent cross-session memory and full-text search for AI coding assistants, storing project context, decisions, and preferences while enabling searchable access to conversation history via local SQLite.81MIT
- AlicenseAqualityBmaintenanceProvides persistent, searchable memory across AI coding agent and chat history (Claude Code, Codex, Gemini CLI, ChatGPT, and more) via retrieval-augmented generation, enabling semantic and hybrid search to retain context across sessions.5MIT
- AlicenseNot gradedqualityBmaintenanceProvides a local long-term memory layer for AI coding tools like Cursor and Claude Code, enabling cross-session, cross-tool sharing of project facts, user preferences, decisions, and workflows.4 npm2MIT