MCP代理中心
   ](Dockerfile)
企业级 模型上下文协议(MCP) 为AI代理提供统一接口的服务器 Jira, Slack,以及 SQL数据库 通过单个MCP连接。
特性
- Jira集成 -通过Jira Cloud REST API创建、搜索、转换问题并添加评论
- Slack集成 -发送消息、列出频道、阅读历史记录和添加反应
- 数据库集成 -使用连接池和模式检查执行只读SQL查询
- 重试逻辑 -所有外部API调用的可配置重试次数的指数退避
- 输入验证 -执行前验证所有工具输入,防止SQL注入
- 结构化日志记录 -JSON日志用于生产,彩色控制台用于开发(structlog)
- 集中配置 -通过带有环境变量的pydantic设置进行类型安全配置
- Docker就绪 -多阶段构建、非root用户、健康检查
- 提示模板 -用于错误报告、事件响应、数据调查的预构建工作流程
建筑
graph LR
Agent[AI Agent] -->|MCP stdio| Hub[Agentic MCP Hub]
Hub --> Jira[Jira Cloud]
Hub --> Slack[Slack API]
Hub --> DB[(Database)]看 docs/ARCHITECTURE.md 了解完整的架构分解。
快速开始
选项1:pip安装
git clone https://github.com/gavksingh/agentic-mcp-hub.git
cd agentic-mcp-hub
pip install -e .
# Configure
cp .env.example .env
# Edit .env with your credentials
# Run
python -m mcp_server_hub.server选项2:Docker
docker build -t agentic-mcp-hub .
docker run --env-file .env -i agentic-mcp-hub选项3:Docker编写
cp .env.example .env
# Edit .env with your credentials
docker compose up -dClaude桌面集成
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"agentic-hub": {
"command": "python",
"args": ["-m", "mcp_server_hub.server"],
"env": {
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_API_TOKEN": "your-token",
"JIRA_USER_EMAIL": "you@company.com",
"SLACK_BOT_TOKEN": "xoxb-your-token",
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
}
}
}配置
所有配置都是通过环境变量进行的。关键变量:
| 变量 | 必填 | 描述 |
|---|---|---|
JIRA_URL | 是\* | Jira实例URL |
JIRA_API_TOKEN | 是\* | Jira API令牌 |
SLACK_BOT_TOKEN | 是\* | Slack机器人令牌 |
DATABASE_URL | 是\* | 数据库连接字符串 |
MCP_LOG_LEVEL | 否 | 日志级别(默认值:INFO) |
MCP_ENABLE_JIRA | 否 | 启用Jira工具(默认值:true) |
MCP_ENABLE_SLACK | 否 | 启用Slack工具(默认值:true) |
MCP_ENABLE_DATABASE | 否 | 启用数据库工具(默认值:true) |
\*启用相应服务时需要。
看 docs/CONFIGURATION.md 以供完整参考。
可用工具
| 工具 | 说明 |
|---|---|
jira_create_issue | 创建新的Jira问题 |
jira_get_issue | 按密钥获取问题详细信息 |
jira_search_issues | 使用JQL搜索 |
jira_add_comment | 向问题添加评论 |
jira_transition_issue | 更改问题状态 |
slack_send_message | 发送频道消息 |
slack_list_channels | 列出可用频道 |
slack_get_channel_history | 获取最近的消息 |
slack_add_reaction | 对消息作出反应 |
db_query | 执行只读SQL |
db_list_tables | 列出数据库表 |
db_describe_table | 获取表架构 |
看 docs/API.md文件 详细的参数文档。
发展
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
make test
# Run linter
make lint
# Format code
make format
# Type check
make type-check
# Run tests with coverage
make test-cov项目结构
agentic-mcp-hub/
├── src/mcp_server_hub/
│ ├── server.py # MCP server entry point
│ ├── config.py # Pydantic-settings configuration
│ ├── exceptions.py # Custom exception hierarchy
│ ├── tools/ # Tool implementations
│ │ ├── base.py # Abstract base tool
│ │ ├── jira_tool.py # Jira integration
│ │ ├── slack_tool.py # Slack integration
│ │ └── database_tool.py # Database integration
│ ├── resources/ # LLM resources
│ ├── prompts/ # Prompt templates
│ └── utils/ # Logging, retry, validation
├── tests/ # Unit and integration tests
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── Dockerfile # Multi-stage Docker build
├── docker-compose.yml # Production compose
└── docker-compose.dev.yml # Development compose贡献
欢迎投稿!看 docs/CONTRIBUTING.md 作为指导方针。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 了解详情。
