模型上下文协议平台

MCP平台是一个用于构建和管理模型上下文协议应用的Monorepo,提供共享库和工具,支持Git、JIRA、Confluence等服务的集成。

  • by jhakim-mktx
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jhakim-mktx/mcp-platform

使用说明

MCP平台

用于具有共享库的MCP(模型上下文协议)应用程序的Monrepo。

包裹

包 描述 状态
@pano/mcp-integrations Git、JIRA、Confluence客户端 ✔ 完成
@pano/mcp-core 配置加载器、记录器、格式化程序 ✔ 完成
@pano/test-mcp 测试MCP以验证提取情况 ✔ 完成
@pano/pano-git GitFlow MCP(完整版) 计划中
@pano/pe-polaris 性能分析MCP 计划

快速开始

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Build specific package
pnpm --filter @pano/mcp-integrations build

MCP检验员测试

这 测试mcp 该包公开了所有提取的集成中的工具。使用MCP检查器进行交互式测试:

cd packages/test-mcp
pnpm run inspector

这将在以下位置打开浏览器UI http://localhost:5173 在那里你可以调用工具。

可用工具

Git工具 (无需身份验证):

  • git_status -工作树状态
  • git_branches -列出分支
  • git_log -提交历史记录
  • git_merged -合并分支机构

JIRA工具 (要求 JIRA_USERNAME, JIRA_PASSWORD):

  • jira_test_connection -测试连接
  • jira_ticket -获取门票详细信息

汇流工具 (要求 CONFLUENCE_PAT):

  • confluence_test_connection -测试连接
  • confluence_page -获取页面内容
  • confluence_children -列出子页面

使用身份验证运行

# Set env vars for JIRA/Confluence
export JIRA_USERNAME=your_username
export JIRA_PASSWORD=your_password
export CONFLUENCE_PAT=your_token

# Then run inspector
cd packages/test-mcp
pnpm run inspector

或内联:

JIRA_USERNAME=x JIRA_PASSWORD=y CONFLUENCE_PAT=z pnpm run inspector

包裹详细信息

@pano/mcp集成

外部服务客户:

import { GitClient } from '@pano/mcp-integrations/git';
import { createJiraProvider } from '@pano/mcp-integrations/jira';
import { createConfluenceClient } from '@pano/mcp-integrations/confluence';

// Git
const git = new GitClient('/path/to/repo');
const status = await git.getStatus();

// JIRA
const jira = createJiraProvider('rest', 'https://jira.example.com');
const ticket = await jira.getTicket('PAN-1234');

// Confluence
const confluence = createConfluenceClient('https://confluence.example.com');
const page = await confluence.getPage('12345');

@pano/mcp核心

共享公用设施:

import { loadConfig, findConfigFile } from '@pano/mcp-core/config';
import { 
  createLogger, 
  markdownTable, 
  withErrorHandling,
  extractTicketIdsFromMessage 
} from '@pano/mcp-core/utils';

// Config loading with Zod validation
const config = loadConfig({ schema: mySchema, configNames: '.myapp.yaml' });

// Logger (outputs to stderr for MCP)
const logger = createLogger('info');

// Markdown table builder
const table = markdownTable(
  [{ header: 'Name', key: 'name' }],
  [{ name: 'foo' }]
);

// MCP error handling wrapper
server.tool('my_tool', schema, async (args) => {
  return withErrorHandling(async () => {
    // your logic
  });
});

发展

# Watch mode for a package
pnpm --filter @pano/mcp-integrations dev

# Clean all builds
pnpm clean

# Build everything
pnpm build

建筑

┌─────────────────┐     ┌─────────────────┐
│    pano-git     │     │   pe-polaris    │
│      (MCP)      │     │     (MCP)       │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘
                     │
         ┌───────────▼───────────┐
         │  @pano/mcp-integrations│
         │  (git, jira, confluence)│
         └───────────┬───────────┘
                     │
         ┌───────────▼───────────┐
         │    @pano/mcp-core      │
         │ (config, utils, logger)│
         └───────────────────────┘

另见