克劳德代理mcp服务器
智能MCP(模型上下文协议)服务器,使AI助手能够与 克劳德 (人物)与 代理能力 -智能查询处理、多回合对话、会话管理、MCP到MCP连接,以及 多模式输入支持 (图像、文本、PDF)。
目的
此服务器提供:
- 代理查询处理:访问Claude强大的推理和代码理解能力
- 询问克劳德:向Claude模型发送查询以进行交叉验证、第二意见或专门任务
- 多回合对话:通过会话管理跨查询维护上下文
- MCP到MCP连接:与外部MCP服务器集成,以扩展工具功能
- 多模式支持:在文本提示旁边发送图像、文本和PDF文档
- 会话管理:具有可配置超时的自动会话创建和清理
- 测井和观测:控制台日志记录(默认)或可选的基于文件的日志记录
主要特点
🔗 MCP到MCP连接
使用外部MCP服务器扩展Claude的功能:
- 动态工具发现:自动发现和使用连接的MCP服务器中的工具
- 标准和HTTP支持:通过stdio(子进程)或HTTP连接到MCP服务器
- 无缝集成:来自外部服务器的工具以本机方式显示给Claude
- 代理编排:Claude会自动选择并使用正确的工具
- 通过配置
CLAUDE_MCP_SERVERS环境变量(JSON数组)
🎨 多模式输入支持
将富媒体内容发送给Claude:
- 图像:JPEG、PNG、webp、gif
- 文件:PDF文件
- 文本:纯文本内容
- 支持base64编码的内联数据和文件URI
- 通行证可选
parts查询工具中的参数
🎭 系统提示定制
自定义AI助手的行为和角色:
- 域特定角色:配置为代码审查员、技术分析师、研究员等。
- 基于环境:通过设置
CLAUDE_SYSTEM_PROMPT环境变量 - 多角色支持:运行具有不同角色的多个服务器
- 100%向后兼容:可选功能-无需自定义即可正常工作
🤖 智能查询处理
基于克劳德的先进能力:
- 多回合对话 具有自动会话管理功能
- 上下文保存 跨越对话的转折
- 可配置的模型参数 (温度,最大标记)
🔐 本地部署的安全性
防御措施:
- 输入验证:提示大小限制(500KB)、查询大小限制(50KB)、多模式内容限制(20个部分,20MB)
- 缓存管理:自动清理(最多100个条目,1小时TTL)以防止内存耗尽
- 伐木消毒:API密钥被屏蔽,日志中的大型数据被截断
- 会话隔离:按会话ID分隔的对话历史记录
- 令牌限制:可配置的最大令牌以控制API成本
看 安全.md 了解详细的安全文档和最佳实践。
📝 可观测性
- 控制台日志记录到stderr(默认,建议用于npx/MCP)
- 可选的基于文件的日志记录(
logs/general.log,logs/reasoning.log) - 调试的详细执行跟踪
先决条件
快速开始
安装
选项1:npx(推荐)
npx -y github:mnthe/claude-agent-mcp-server选项2:来源
git clone https://github.com/mnthe/claude-agent-mcp-server.git
cd claude-agent-mcp-server
npm install
npm run build认证
设置您的Anthropic API密钥(用于默认Anthropicprovider):
export ANTHROPIC_API_KEY="your-api-key-here"使用AWS Bedrock还是Vertex AI? 看 提供商设置指南 详细说明。这些提供商使用自己的身份验证方法(AWS凭据或GCP凭据),不需要ANTHROPIC_API_KEY。
配置
Anthropic提供者必需(默认):
export ANTHROPIC_API_KEY="your-api-key-here"可选模型设置:
export CLAUDE_MODEL="claude-sonnet-4-5-20250929" # or claude-haiku-4-5-20251001, claude-opus-4-1-20250805
export CLAUDE_TEMPERATURE="1.0"
export CLAUDE_MAX_TOKENS="8192"可选提供程序设置:
# Use AWS Bedrock instead of Anthropic API
export CLAUDE_PROVIDER="bedrock"
export AWS_REGION="us-east-1"
# OR use Google Cloud Vertex AI
export CLAUDE_PROVIDER="vertex"
export ANTHROPIC_VERTEX_PROJECT_ID="your-gcp-project"
export CLOUD_ML_REGION="global"📘 看 提供商设置指南 有关使用AWS Bedrock或Vertex AI的完整说明。
可选对话设置:
# Multi-turn conversations
export CLAUDE_ENABLE_CONVERSATIONS="true"
export CLAUDE_SESSION_TIMEOUT="3600" # 1 hour
export CLAUDE_MAX_HISTORY="10" # Keep last 10 messages可选系统提示:
# Customize AI behavior
export CLAUDE_SYSTEM_PROMPT="You are a code review specialist. Focus on code quality, security, and best practices."可选日志配置:
# Default: Console logging to stderr (recommended for npx/MCP usage)
export CLAUDE_LOG_TO_STDERR="true" # Default: true (console logging)
# For file-based logging instead:
export CLAUDE_LOG_TO_STDERR="false" # Disable console, use file logging
export CLAUDE_LOG_DIR="/path/to/logs" # Custom log directory (default: ./logs)
# To disable logging completely:
export CLAUDE_DISABLE_LOGGING="true"可选MCP服务器配置:
# Connect to external MCP servers for extended capabilities
# JSON array of server configurations
export CLAUDE_MCP_SERVERS='[
{
"name": "filesystem",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
},
{
"name": "github",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-token"
}
}
]'每种服务器配置都支持:
- 标准运输:生成MCP服务器作为子进程
- name:唯一服务器标识符 - transport“stdio” - command:要执行的命令(例如“npx”、“node”) - args:命令参数数组 - env:可选环境变量
- HTTP传输:通过HTTP连接到MCP服务器
- name:唯一服务器标识符 - transport:“http” - url:MCP服务器的基本URL - headers:可选HTTP标头
MCP客户端集成
添加到MCP客户端配置中:
克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"claude-agent": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key-here",
"CLAUDE_MODEL": "claude-sonnet-4-5-20250929",
"CLAUDE_ENABLE_CONVERSATIONS": "true"
}
}
}
}克劳德代码 (.claude.json 在项目根目录中):
{
"mcpServers": {
"claude-agent": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key-here",
"CLAUDE_MODEL": "claude-sonnet-4-5-20250929"
}
}
}
}其他MCP客户端 (通用标准):
# Command to run
npx -y github:mnthe/claude-agent-mcp-server
# Or direct execution
node /path/to/claude-agent-mcp-server/build/index.js多角色设置
您可以运行多个具有不同角色的Claude服务器来执行专门的任务:
{
"mcpServers": {
"claude-code": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key",
"CLAUDE_SYSTEM_PROMPT": "You are a code review specialist. Focus on code quality, security, and best practices."
}
},
"claude-research": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key",
"CLAUDE_SYSTEM_PROMPT": "You are an academic research assistant. Cite sources and provide comprehensive analysis."
}
},
"claude-writer": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key",
"CLAUDE_SYSTEM_PROMPT": "You are a professional technical writer. Focus on clear, concise documentation."
}
}
}
}可用工具
此MCP服务器提供 3个核心工具 对于人工智能驱动的信息检索和对话:
怎么翻译
通过智能响应生成查询Claude AI。支持会话管理和多模式输入的多回合对话。
参数:
prompt(string,必填):发送给Claude的文本提示sessionId(字符串,可选):多回合对话的对话会话IDparts(数组,可选):多模态内容部分(图像、PDF文档)
- 每个部分可以包含: - text:附加文本内容 - inlineData:使用Base64编码的文件数据 mimeType 和 data 字段(支持图像/\*和应用程序/pdf) - fileData:文件URI为 mimeType 和 fileUri 图像和PDF的字段(文件://,https://)
工作原理:
- 接收提示、可选会话ID和可选多模式部件
- 如果提供了会话ID,则检索会话历史记录
- 如果启用了对话但未给出会话ID,则创建新会话
- 处理多模式内容(如果提供)(图像、PDF文档)
- 向Claude发送包含对话上下文和多模式内容的查询
- 返回带有会话ID的响应
示例:
# Simple query
query: "What is the capital of France?"
# Multi-turn conversation (session auto-created)
query: "What is machine learning?"
→ Returns: Answer + Session ID: abc123...
# Continue conversation
query: "Give me an example"
sessionId: "abc123..."
→ Uses previous context to provide relevant example
# Multimodal query with image (base64)
query: "What's in this image?"
parts: [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "base64-encoded-image-data..."
}
}
]
# Multimodal query with PDF document (file URI)
query: "Summarize this PDF document"
parts: [
{
"fileData": {
"mimeType": "application/pdf",
"fileUri": "file:///path/to/document.pdf"
}
}
]答复包括:
- 回答内容
- 会话ID(如果启用了对话)
搜索
使用Claude搜索信息。返回符合OpenAI MCP搜索工具规范的相关搜索结果列表。
参数:
query(字符串,必填):搜索查询
响应格式:
- 包含文档ID和元数据的搜索结果数组
- 结果可以使用
fetch工具
示例:
# Search for information
search: "climate change impacts on agriculture"
→ Returns: Array of relevant search results
# Follow-up with fetch to get full content
fetch:
id: "result-123"
→ Returns: Full document content获取
按ID获取搜索结果文档的全部内容。遵循OpenAI MCP获取工具规范。
参数:
id(string,必填):要获取的文档的唯一标识符
响应格式:
- 完整文档内容
- 之后可以使用
search检索完整文章/文档的工具
示例:
# After searching, fetch a specific result
fetch:
id: "doc-abc-123"
→ Returns: Full document content建筑
项目结构
src/
├── config/ # Configuration loading
│ └── index.ts # Environment variable parsing
│
├── types/ # TypeScript type definitions
│ ├── config.ts # Configuration types
│ ├── conversation.ts # Conversation types
│ └── mcp.ts # MCP protocol types
│
├── schemas/ # Zod validation schemas
│ └── index.ts # Tool input schemas
│
├── managers/ # Business logic
│ └── ConversationManager.ts # Session and history management
│
├── services/ # External services
│ └── ClaudeAIService.ts # Anthropic API wrapper
│
├── handlers/ # Tool handlers
│ └── QueryHandler.ts # Query tool implementation
│
├── server/ # MCP server
│ └── ClaudeAgentMCPServer.ts # Server orchestration
│
├── errors/ # Custom error types
│ └── index.ts # Error class definitions
│
├── utils/ # Utilities
│ └── Logger.ts # Console and file-based logging
│
└── index.ts # Entry point组件详细信息
配置(config/)
- 加载环境变量
- 验证所需设置
- 提供可选设置的默认值
- 解析MCP服务器配置
服务项目(services/)
- 条款A服务:包装Anthropic SDK
- 处理邮件格式 - 管理API调用 - 支持流式响应 - 跟踪令牌使用情况
管理人员(managers/)
- 会话管理器:会话管理
- 创建和跟踪会话 - 存储对话历史记录 - 实现自动清理 - 限制历史记录大小
处理人员(handlers/)
- 查询处理器:主要查询处理
- 协调对话检索 - 呼叫克劳德服务 - 更新对话历史记录 - 格式化响应
服务器(server/)
- ClaudeAgentCPS服务器:MCP协议实施
- 在MCP中注册工具 - 将工具调用路由到处理程序 - 优雅地处理错误 - 管理stdio传输
高级用法
会话管理
启用后,对话将自动管理:
export CLAUDE_ENABLE_CONVERSATIONS="true"
export CLAUDE_SESSION_TIMEOUT="3600" # 1 hour
export CLAUDE_MAX_HISTORY="10" # Keep last 10 messages会话生命周期:
- 创造:在第一次查询时创建新会话(或者如果找不到sessionId)
- 用法:将sessionId传递给后续查询以维护上下文
- 过期:会话在非活动超时后过期
- 清理:每分钟自动删除过期会话
多回合对话示例:
// First query - creates session
const response1 = await query({
prompt: "Explain dependency injection"
});
// response1 includes: sessionId: "abc123..."
// Second query - uses context
const response2 = await query({
prompt: "Show me a TypeScript example",
sessionId: "abc123..."
});
// Claude remembers we're discussing dependency injection
// Third query - continues context
const response3 = await query({
prompt: "What are the benefits?",
sessionId: "abc123..."
});
// Claude understands we're asking about DI benefits自定义系统提示
为特定用例定制Claude的行为:
代码审查助理:
export CLAUDE_SYSTEM_PROMPT="You are a senior software engineer specializing in code review. Focus on:
1. Security vulnerabilities
2. Performance issues
3. Best practices and design patterns
4. Code maintainability
Provide specific, actionable feedback."技术撰稿人:
export CLAUDE_SYSTEM_PROMPT="You are a professional technical writer. Your documentation should be:
1. Clear and concise
2. Well-structured with headings
3. Include practical examples
4. Accessible to the target audience"研究助理:
export CLAUDE_SYSTEM_PROMPT="You are an academic research assistant. When responding:
1. Cite sources and provide references
2. Present multiple perspectives
3. Acknowledge limitations and uncertainties
4. Use formal academic language"看 examples/custom-promplets.md 获取更多即用型模板。
日志记录配置
控制服务器记录信息的方式:
默认值:控制台日志记录
默认情况下,日志会发送到stderr,使其在MCP客户端日志中可见。
对于基于文件的日志记录:
export CLAUDE_LOG_TO_STDERR="false" # Disable console, use files
export CLAUDE_LOG_DIR="/var/log/claude-agent" # Log directory (default: ./logs)然后检查日志:
tail -f logs/general.log # All logs
tail -f logs/reasoning.log # Reasoning traces (if implemented)要禁用所有日志记录,请执行以下操作:
export CLAUDE_DISABLE_LOGGING="true"发展
构建
npm run build观看模式
npm run watch发展模式
npm run dev清洁建筑
npm run clean
npm run build故障排除
MCP服务器连接问题
如果MCP服务器出现“死机”或意外断开连接:
检查MCP客户端日志 (默认情况下,日志会发送到stderr):
- macOS:
~/Library/Logs/Claude/mcp*.log - 视窗:
%APPDATA%\Claude\Logs\mcp*.log
服务器日志将自动显示在这些文件中。
日志目录错误
如果您遇到以下错误 ENOENT: no such file or directory, mkdir './logs':
默认设置下不应出现这种情况 (控制台日志记录是默认设置)。
如果启用了文件日志记录(CLAUDE_LOG_TO_STDERR="false"):
解决方案: 使用可写日志目录:
{
"mcpServers": {
"claude-agent": {
"command": "npx",
"args": ["-y", "github:mnthe/claude-agent-mcp-server"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key",
"CLAUDE_LOG_TO_STDERR": "false",
"CLAUDE_LOG_DIR": "/tmp/claude-logs"
}
}
}
}身份验证错误
对于Anthropic提供者(默认):
- 验证API密钥:
echo $ANTHROPIC_API_KEY - 检查中的密钥有效性 Anthropic 控制台
- 确保密钥具有适当的权限
对于基岩/顶点AI: 看 提供商设置指南 用于特定于提供商的身份验证故障排除。
会话问题
未找到会话:
- 会话可能已过期(请检查
CLAUDE_SESSION_TIMEOUT) - 服务器可能已重新启动(会话仅在内存中)
- 解决方案:服务器自动创建新会话
上下文未保留:
- 验证
CLAUDE_ENABLE_CONVERSATIONS="true" - 检查
CLAUDE_MAX_HISTORY设置 - 确保使用相同的
sessionId跨查询
贡献
欢迎投稿!请看 贡献.md 详细指南。
快速启动:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
文档
- 提供者.md - 提供商设置指南(AWS Bedrock、Vertex AI)
- 安全.md -安全文件和最佳做法
- 建筑.md -系统架构与设计
- 董事_结构.md -代码组织
- 实施.md -实施细节
- 构建.md -构建和发布流程
- 贡献.md -贡献指南
- BUILD_SUMMARY.md -项目指标
- examples/custom-promplets.md -系统提示模板
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 内置 拟人克劳德代理SDK
- 用途 模型上下文协议
