@ crossdelta/pf-mcp (英语)
用于平台SDK的模型上下文协议(MCP)服务器适配器.
概览
此软件包在 示范背景协议SDK 和平台 SDK,将插件命令曝光为MCP工具.
结构 :
- 取决于SDK平台外观(
@crossdelta/platform-sdk/facade(中文(简体) ) - Pins MCP SDK 为稳定精确版本
- 零业务逻辑 - 纯适配器模式
- 插件不可知: 任何平台 SDK 插件的工程
安装
bun add @crossdelta/pf-mcp
使用量
自动发现( 建议)
启动服务器的最简单方法 - 自动发现工作空间配置 package.json数字 :
import { createMcpServerFromWorkspace } from '@crossdelta/pf-mcp'
await createMcpServerFromWorkspace({
name: 'platform-mcp-server',
version: '0.1.0',
plugins: ['@crossdelta/cloudevents']
})
这将:
- 自动发现工作空间根( 从 cwd 到找到软件包
pf配置( c) - 从
pf.contracts字段 - 从文件系统中发现可用的服务
手动配置
为了进行更多的控制,您可以明确提供工作空间配置:
import { createMcpServer } from '@crossdelta/pf-mcp'
await createMcpServer({
name: 'platform-mcp-server',
version: '0.1.0',
workspace: {
workspaceRoot: process.cwd(),
contracts: {
path: 'packages/contracts/src',
packageName: '@my-org/contracts'
},
availableServices: ['orders', 'notifications']
},
plugins: ['@crossdelta/cloudevents']
})
MCP SDK 版本战略
当前版本 : ^1.25.1 (v1.x-最新稳定)
此软件包使用 护理范围 为 MCP SDK 自动接收补丁和小更新.
SDK 状态数字 :
- v1.x (韩语) (单位:千美元)
@modelcontextprotocol/sdk: 当前稳定,在npm上发布,用途Server类 - v2.x (英语) (单位:千美元)
@modelcontextprotocol/server:在开发中(主要分支),尚未出版,将使用McpServer类
这个 Server 类中显示的折旧警告指向 McpServer,但这是一个前瞻性的通知 对于未释放的v2 API。 我们目前使用的v1.25.1.
为什么是凯特牧场?
- 变质 SDK: MCP SDK 位于 v1.x 有稳定的 API
- 自动错误修正: 安全补丁和修正,不作人工干预
- 合规: SDK 遵循语义版本
- 面相隔离: SDK 平台外观提供稳定性层
版本政策
允许更新 :
- * 补丁更新(1.25.1 → 1.25.2) - 自动
- * 小更新(1.25.x)-自动
- • 主要更新(1.x-2.0) - 需要手动升级
手动升级的时间 :
- 新建 MCP SDK 主要版本, 并打破更改
- 我们要使用的新协议特性
- 二. 重大安全弱点
迁移到 SDK v2.x (未来):
当 SDK v2 发布到 npm( 预期Q1 2026) 时 :
- 安装 :
bun add @modelcontextprotocol/server(替换)@modelcontextprotocol/sdk(中文(简体) ) - 更新导入 :
Server→McpServer,软件包路径 :@modelcontextprotocol/sdk/server→@modelcontextprotocol/server - 审查 v2 运输/ 处理器 API 的中断变化
- 以 v2 为例的测试 : 服务器.md
- 更新此读取器
如何升级 :
- 审查 MCP SDK 更改日志以打破更改
- 首先在 dev 环境中进行测试
- 如果处理器 APIs 更改, 更新适配器代码
- 运行集成测试
- 更新版本于
package.json - 此 README 中的文档更改
版本历史
| MCP SDK 软件 | 日期 | 变动 | 页:1 |
|---|---|---|---|
| ^ 1.25.1 (韩语) | 2025-12-28 (中文(简体) ) | 初始版本 | v1.x 稳定放出, v2 在开发中 |
可用工具
MCP服务器将这些工具曝光给AI助手:
| 工具 | 说明 |
|---|---|
scan_workspace | 扫描服务、合同和配置的工作空间 |
generate_service | 生成一个新的微服务计划( 默认干运行) |
plan_review | 应用前验证生成计划 |
apply_changes | 应用生成计划中的更改 |
MCP (建筑)
关键原则: MCP=规划员(结构),AI=代码生成器(内容)
1. AI delivers Intent + Inputs → mcp_pf_generate_service(prompt: "...")
2. pf generates Plan + Preview ← { files: [], changes: [], planHash }
3. AI generates code for files → AI fills content based on intent + inputs
4. Optional: plan_review → mcp_pf_plan_review(changes: [...])
5. User OK Gate → User confirms
6. Apply with expectedPlanHash → mcp_pf_apply_changes(changes: [...], expectedPlanHash: "...")
生成服务响应结构
{
ok: true,
operation: 'generate_service',
summary: 'Planned notifications: 10 scaffold files + 3 files for AI to generate',
// Scaffold effects (ready to apply - have content)
changes: [
{ kind: 'file:write', path: 'services/notifications/package.json', content: '...' },
{ kind: 'file:write', path: 'services/notifications/src/index.ts', content: '...' },
// ...
],
// Files for AI to generate (NO content - AI fills based on intent + inputs)
files: [
{
path: 'services/notifications/src/events/order-created.handler.ts',
intent: 'Handle order.created event',
inputs: { eventType: 'order.created', contractName: 'OrdersCreatedContract' }
},
{
path: 'services/notifications/src/adapters/push.adapter.ts',
intent: 'Push notification adapter using pusher-beams',
inputs: { provider: 'pusher-beams', envVars: ['PUSHER_BEAMS_INSTANCE_ID', 'PUSHER_BEAMS_SECRET_KEY'] }
},
],
// Dependencies to add
dependencies: [
{ name: '@pusher/push-notifications-server', version: '^1.0.0' }
],
// Environment variables needed
envVars: [
{ key: 'PUSHER_BEAMS_INSTANCE_ID', description: 'Pusher Beams instance ID', required: true }
],
// Integrity hash
planHash: 'abc123...',
}
AI 工作流程
- 调用生成服务( S) 迅速
- 读取文件数组 (路径+意图+投入)
- 生成代码 基于意图+输入的每个文件
- 合并为更改 包含 AI 生成的内容
- 调用应用程序 更改 与合并的更改 + 预期的 PlanHash
效果类型
| 效果类 | 说明 |
|---|---|
file:write | 将文件写入文件系统 |
env:add | 将环境变量添加到 .env.local |
infra:add | 创建基础设施配置 |
deps:add | 将依赖性添加到 package.json |
工具示例
扫描工作空间
{
"name": "scan_workspace",
"arguments": {}
}
生成服务(干线运行)
{
"name": "generate_service",
"arguments": {
"template": "hono-bun",
"name": "order-processor",
"events": ["order.created", "order.updated"]
}
}
生成服务( 应用)
{
"name": "generate_service",
"arguments": {
"template": "hono-bun",
"name": "order-processor",
"events": ["order.created"],
"dryRun": false
}
}
测试
手动测试( CLI)
直接通过 stdin/ stdout 测试 MCP 服务器 :
# Build the package first
cd packages/pf-mcp && bun run build
# From workspace root - list available tools
cd /path/to/workspace
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | bun run packages/pf-mcp/bin/server.ts
# Scan workspace
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"scan_workspace","arguments":{}}}' | bun run packages/pf-mcp/bin/server.ts
# Generate service (dry-run)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"generate_service","arguments":{"template":"hono-bun","name":"test-service","events":["order.created"]}}}' | bun run packages/pf-mcp/bin/server.ts
VS 代码集成( 副驾驶代理模式)
添加到您的 VS 代码 settings.json数字 :
{
"github.copilot.chat.mcpServers": {
"pf": {
"command": "bun",
"args": ["run", "${workspaceFolder}/packages/pf-mcp/bin/server.ts"],
"env": {}
}
}
}
或为已建版本( npm 包):
{
"github.copilot.chat.mcpServers": {
"pf": {
"command": "node",
"args": ["${workspaceFolder}/node_modules/@crossdelta/pf-mcp/dist/cli.js", "--stdio"],
"env": {}
}
}
}
配置后,重新启动VS代码. 这些工具将随 mcp_pf_ 在“副驾驶代理模式”中前缀.
单位测试
cd packages/pf-mcp
bun test
发展
# Build
bun run build
# Test
bun test
# Watch mode
bun run dev
建筑
┌─────────────────┐
│ MCP Client │ (Claude Desktop, Zed, etc.)
└────────┬────────┘
│ stdio
┌────────▼────────┐
│ pf-mcp Server │ (this package - thin adapter)
└────────┬────────┘
│ facade API
┌────────▼────────┐
│ Platform SDK │ (plugin system, execution engine)
│ Facade │
└────────┬────────┘
│
┌────────▼────────┐
│ Plugins │ (@crossdelta/cloudevents, etc.)
└─────────────────┘
设计原则
- 细适配器: 没有商业逻辑, 纯协议翻译
- 表面依赖关系: 只从下列来源进口:
@crossdelta/platform-sdk/facade - 插件不可知论: 与任何符合的插件一起工作
PfPlugin接口 - 精确的 SDK 标针: MCP SDK 版本为稳定而明确控制
外观 API 表面
此套件依赖于这些稳定的外观出口:
import {
loadPlugins, // Load plugins from module names
createContext, // Create plugin context
collectToolSpecs, // Transform commands → tool specs
applyEffects, // Apply command effects
// Types
type PfPluginContext,
type PfWorkspaceContext,
type LoadedPlugin,
type ToolSpec,
} from '@crossdelta/platform-sdk/facade'
外观提供版本稳定性 - 平台SDK可以在不突破这个适配器的情况下重构内部.
路线图
第一阶段:核心工具(当前)
- 有 stdio 传输的服务器骨架
tools/list处理器tools/call执行命令的处理器- 通过表面应用效果
- 用模拟插件进行完全整合测试
- 处理和验证出错
- 日志和调试支持
第2阶段:增强能力
resources/list- 将工作空间合同作为资源resources/read- 合同内容检索prompts/list- 基于模板的提示prompts/get- 迅速解决- 安全计划/适用离职
第3阶段:高级特征
- 通过通知报告进展情况
- 对长期业务的应对
- 工作空间变化通知
- 多工作空间支持
捐款
这个包是平台SDK monorepo的一部分. 见捐助准则主要存放处.
许可证
麻省理工学院 横跨德尔塔