MCP-Agent项目配置完全指南:从基础到高级配置详解
2025-07-07 07:15:11作者:羿妍玫Ivan
项目概述
MCP-Agent是一个基于模型上下文协议(MCP)构建的智能代理框架,它通过灵活的配置系统支持多种执行引擎、日志系统和模型提供商的集成。本文将全面解析MCP-Agent的配置体系,帮助开发者快速掌握配置技巧。
配置系统架构
MCP-Agent采用双文件配置体系,将常规配置与敏感信息分离:
-
主配置文件 (mcp_agent.config.yaml)
- 应用基础设置
- 日志系统配置
- 服务器连接参数
- 模型提供商非敏感配置
-
密钥配置文件 (mcp_agent.secrets.yaml)
- 各模型提供商的API密钥
- 数据库连接字符串
- 其他敏感凭证信息
安全提示:密钥文件应当加入.gitignore,避免意外提交到版本控制系统。
基础配置实战
YAML配置方式(推荐)
- 创建主配置文件
# 基础执行引擎配置
execution_engine: asyncio
# 日志系统设置
logger:
transports: [console] # 支持console/file两种传输方式
level: info # 日志级别:debug/info/warning/error
# MCP服务器配置
mcp:
servers:
fetch: # 网络请求服务器
command: "uvx"
args: ["mcp-server-fetch"]
filesystem: # 文件系统服务器
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "."]
# OpenAI默认模型设置
openai:
default_model: gpt-4o
- 创建密钥配置文件
# OpenAI密钥配置
openai:
api_key: "sk-your-api-key-here"
- 加载配置
from mcp_agent.app import MCPApp
# 自动加载当前目录下的配置文件
app = MCPApp(name="demo_agent")
编程式配置方式
适用于需要动态生成配置的场景:
from mcp_agent.app import MCPApp
from mcp_agent.settings import Settings, LoggerSettings, MCPSettings
# 构建配置对象
settings = Settings(
execution_engine="asyncio",
logger=LoggerSettings(
transports=["console"],
level="info"
),
mcp=MCPSettings(
servers={
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
)
)
# 传入配置初始化应用
app = MCPApp(name="dynamic_agent", settings=settings)
核心配置详解
执行引擎配置
MCP-Agent支持两种执行模式:
-
异步模式(默认)
execution_engine: asyncio
- 轻量级异步执行
- 适合大多数常规应用场景
-
Temporal工作流引擎
execution_engine: temporal temporal: host: "localhost" port: 7233 namespace: "default" task_queue: "mcp-agent"
- 提供持久化工作流支持
- 具备任务恢复能力
- 适合需要高可靠性的生产环境
日志系统配置
MCP-Agent提供灵活的日志配置选项:
-
基础日志配置
logger: transports: [console, file] # 同时输出到控制台和文件 level: debug # 记录调试级别及以上日志 path: "logs/agent.log" # 日志文件路径
-
高级日志轮转
logger: transports: [file] path_settings: path_pattern: "logs/agent-{date}.log" rotation: "1 day" # 按天轮转 retention: "7 days" # 保留7天日志
MCP服务器配置
MCP服务器是代理的核心能力扩展点,常见配置模式:
-
基础服务器配置
mcp: servers: postgres: command: "uvx" args: ["mcp-server-postgres"] env: PG_CONN_STR: "postgresql://user:pass@localhost/db"
-
工作目录设置
git_server: command: "uvx" args: ["mcp-server-git"] working_dir: "/path/to/repo"
模型提供商配置
OpenAI配置示例
# config.yaml
openai:
default_model: gpt-4-turbo
temperature: 0.7
max_tokens: 2000
# secrets.yaml
openai:
api_key: "sk-..."
organization: "org-..." # 可选组织ID
多提供商配置
# 配置多个模型提供商
openai:
default_model: gpt-4o
anthropic:
default_model: claude-3-sonnet
azure:
default_model: gpt-4
api_version: "2024-02-15-preview"
高级配置技巧
环境变量覆盖
# 支持通过环境变量动态覆盖配置
mcp:
servers:
redis:
command: "uvx"
args: ["mcp-server-redis"]
env:
REDIS_URL: ${REDIS_URL} # 从环境变量读取
配置继承
# base.config.yaml
logger:
level: info
# dev.config.yaml
_extends: base.config.yaml
logger:
level: debug # 覆盖基础配置
典型配置案例
数据处理代理
execution_engine: asyncio
logger:
transports: [file]
path: "logs/data_processor.log"
mcp:
servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/data"]
sqlite:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-sqlite", "results.db"]
anthropic:
default_model: claude-3-sonnet
企业级部署配置
execution_engine: temporal
temporal:
host: "temporal.prod.internal"
port: 7233
namespace: "mcp-production"
logger:
transports: [file]
path: "/var/log/mcp-agent.jsonl"
rotation: "100 MB" # 按大小轮转
azure:
default_model: gpt-4
api_version: "2024-02-15-preview"
故障排查指南
-
配置加载失败
- 检查文件路径是否正确
- 验证YAML语法(可使用在线校验工具)
- 确认文件权限
-
服务器连接问题
# 测试服务器命令是否可用 uvx mcp-server-fetch --help
-
模型API错误
- 检查密钥是否正确
- 验证API端点可达性
- 查看配额限制
最佳实践建议
-
版本控制策略
- 将config.yaml纳入版本控制
- 通过.gitignore排除secrets.yaml
- 使用环境变量管理生产环境密钥
-
配置分层
- 基础配置(base.config.yaml)
- 环境特定配置(dev/prod)
- 本地覆盖配置(local.config.yaml)
-
安全建议
- 定期轮换API密钥
- 使用最小权限原则
- 审计日志中过滤敏感信息
通过本文的详细指南,您应该已经掌握了MCP-Agent配置系统的核心要点。合理配置是发挥代理最大效能的基础,建议根据实际业务需求灵活组合各种配置选项。