该项目提供了一个针对 OpenProject 的模型上下文协议(MCP)服务器,旨在与 Smithery 部署和使用。它公开了一组用于与自托管的 OpenProject 实例交互的工具,并且兼容 Smithery 的 HTTP 传输和工具列表要求。
openproject-create-project: 创建一个新的项目。openproject-get-project: 根据 ID 获取特定项目。openproject-list-projects: 列出所有项目(支持分页)。openproject-update-project: 更新现有项目的详细信息。openproject-delete-project: 删除一个项目。openproject-create-task: 在项目中创建一个新的任务。openproject-get-task: 根据 ID 获取特定任务。openproject-list-tasks: 列出任务,可选地按项目 ID 过滤(支持分页)。openproject-update-task: 更新现有任务(需要 lockVersion)。openproject-delete-task: 删除一个任务。此 MCP 服务器现在使用 Express 和官方的 MCP Streamable HTTP 传输。运行 npm run dev 或 npm start 后,服务器可通过 http://localhost:8000/mcp 访问。
入口点代码(参见 src/index.ts):
import express from "express";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const app = express();
app.use(express.json());
const mcpServer = setupMCPServer();
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
mcpServer.connect(transport);
app.all("/mcp", (req, res) => {
transport.handleRequest(req, res, req.body);
});
app.get("/", (_req, res) => res.send("MCP OpenProject 服务器正在运行!"));
const PORT = process.env.PORT || 8000;
app.listen(PORT, () => {
console.log(`MCP 服务器在端口 ${PORT} 上运行`);
});
/mcp 端点是 Smithery 和 MCP 客户端的主要 MCP HTTP 端点。/ 端点是一个健康检查。npm install
npm run build
npm run dev
# 或者用于生产
npm start
构建并运行如前所述:
docker build -t mcp-openproject-smithery .
docker run --rm -p 8000:8000 --env-file .env mcp-openproject-smithery
此项目已准备好用于 Smithery。/mcp 端点兼容 Smithery 的 HTTP 传输要求。
您可以使用 MCP Inspector 在本地测试您的 MCP 服务器:
npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8000/mcp
在浏览器中打开 Inspector URL(通常是 http://localhost:6274),以与您的工具进行交互。
src/index.ts — 主 MCP 服务器逻辑smithery.yaml — Smithery 服务器配置Dockerfile — 生产就绪的 Docker 构建tsconfig.json — TypeScript 配置package.json — 项目依赖项和脚本MIT
此项目维护用于与 Smithery 和模型上下文协议一起使用。更多信息,请参阅: