使用说明
MCP集线器服务器
一个使用Spring Boot构建的中央模型上下文协议(MCP)中心服务器,用于注册工具和提示,并公开一个HTTP MCP端点供整个组织使用。
特性
- HTTP MCP端点位于
/mcp用于工具和快速调用 - GitHub工具(例如。,
fetch_repositories)当前使用应用程序属性中的令牌 - 提示注册(例如,提交消息提示)
- 通过Spring beans可扩展的工具/提示注册表
需求
- Java 17+
- Maven 3.8+
构建并运行
- 构建项目:
./mvnw clean package
在Windows PowerShell上:
./mvnw.cmd clean package
- 运行服务器:
java -jar target/mcp-hub-*.jar
默认情况下,服务器在端口8081上启动(检查 src/main/resources/application.yaml).
身份验证(当前行为)
目前,GitHub令牌是从应用程序属性中读取的(github.token)定义于 application.yaml。您可以在启动服务器之前通过环境变量覆盖它:
Windows PowerShell:
$env:GITHUB_TOKEN = "<your_personal_access_token>"; java -jar target/mcp-hub-*.jar
application.yaml代码段:
github:
token: ${GITHUB_TOKEN:ghp_example_default}
通过自定义标头进行计划身份验证
基于报头的每请求认证(例如。, X-GITHUB-TOKEN)计划中,不同的用户可以通过MCP客户端(如Copilot)传递自己的令牌。一旦实现,工具将从MCP传输上下文中提取令牌。在此之前,请按照上述说明使用应用程序属性。
MCP客户端配置(示例)
您可以将MCP客户端(例如Copilot)配置为调用集线器,但请注意,截至目前,服务器尚未消耗 X-GITHUB-TOKEN 对于工具调用:
{
"servers": {
"mcp-hub": {
"type": "http",
"url": "http://localhost:8081/mcp"
// headers like X-GITHUB-TOKEN will be supported in a future update
}
}
}
工具
fetch_repositories:列出经过身份验证的用户的存储库- 路径:
com.saliam.ai.mcp.hub.tool.github.FetchRepositoriesTool - 用途
github.token从运行时的应用程序属性
- 路径:
在下面添加更多工具 src/main/java/com/saliam/ai/mcp/hub/tool/**.
提示
- 提示可以添加在
src/main/java/com/saliam/ai/mcp/hub/prompt/**并在McpRegistryConfig.
开发笔记
- 工具和提示注册发生在
McpRegistryConfig使用McpAsyncServer和McpServerFeatures. - GitHub身份验证当前从以下位置读取
github.token在application.yaml.
故障排除
- 如果MCP请求超时或返回500:
- 确保服务器在端口8081上运行
/mcp可以联系到 - 验证
GITHUB_TOKEN环境变量或application.yaml值设置正确 - 在工具调度期间检查服务器日志是否有异常
- 确保服务器在端口8081上运行
- 使用PowerShell验证您的令牌:
Invoke-RestMethod -Headers @{ Authorization = "Bearer <token>"; Accept = "application/vnd.github+json" } -Uri "https://api.github.com/user" -Method Get
Invoke-RestMethod -Headers @{ Authorization = "Bearer <token>"; Accept = "application/vnd.github+json" } -Uri "https://api.github.com/user/repos?per_page=100&sort=updated" -Method Get
许可证
专有——组织内部使用。