使用说明
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)│
└───────────────────────┘
另见
- 移民计划.md -详细的迁移跟踪
