@ ama- sdk/ mcp
用于曝光的 MCP 模块 SDK_CONTEXT.md 从已安装的软件包到AI助手.
目的
当使用 SDK 生成时 @ama-sdk/形状,它们可以包括 SDK_CONTEXT.md 文件描述 :
- 可用的 API 域和操作
- 每个域所用的模型
- 避免幻觉的人工智能工具准则
这个MCP模块使用Node.js的模块分辨率自动从已安装的包中发现并加载了这些上下文文件,然后将其暴露给AI助手.
配置
VS 代码 .vscode/mcp.json
在您直接配置 SDK 包 .vscode/mcp.json数字 :
{
"servers": {
"sdk-context": {
"command": "npx",
"args": ["-y", "-p", "@ama-sdk/mcp", "ama-sdk-mcp", "--packages", "@my-scope/my-sdk-package", "@other-scope/other-sdk"]
}
}
}
使用量
CLI(用于mcp.json) 互联网档案馆的存檔,存档日期2013-12-02
# Specify packages with --packages flag
ama-sdk-mcp --packages @my-scope/my-sdk @other-scope/other-sdk
# Show help
ama-sdk-mcp --help
程序化( 自定义 MCP 服务器)
import { registerSdkContextToolAndResources } from '@ama-sdk/mcp';
// With explicit packages
await registerSdkContextToolAndResources(server, {
sdkPackages: ['@my-scope/my-sdk']
});
// Or reads from package.json sdkContext.packages automatically
await registerSdkContextToolAndResources(server);
可用工具
get_sdk_context - 为已配置的软件包检索 SDK 上下文
// List all configured SDKs with context
get_sdk_context()
// Get context for specific package
get_sdk_context({ packageName: "@my-scope/my-sdk-package" })
可用资源
sdk-context://instructions - 人工智能助理的使用指南
该资源提供如何有效使用SDK上下文的指令,以便在执行特性时避免幻觉. AI 助手在使用前应先读取此资源 get_sdk_context 工具.
sdk-context://<package-name> - 每个配置软件包的 SDK 上下文
每个配置的 SDK 软件包有一个 SDK_CONTEXT.md 文件作为资源被曝光.
如何运作
- 读取
sdkContext.packages从项目package.json或使用 CLI 参数 - 用途节点.js
require.resolve()自动定位软件包 - 装入
SDK_CONTEXT.md从每个已解析的软件包中 - 每个都登记为 MCP 资源
- 为 AI 助手提供查询 SDK 信息的工具
软件包分辨率
SDK 使用 Node.js 自动发现软件包 require.resolve()这意味着:
- 不需要手动路径配置 - 自动找到软件包
- 工作空间 - 支持 npm/yarn/pnpm 工作空间配置
- 弹性安装 - 与本地、全球或定制模块路径合作
- 处理错误 - 找不到软件包时清除出错信息
如果找不到软件包,请确保:
- 软件包已安装( Name
npm install <package-name>(中文(简体) ) - 包名拼写正确
- 包有一个
SDK_CONTEXT.md文件在其根中
警卫:系统验证了软件包名称,以防止路径倒转攻击,只接受有效的npm软件包名称模式.
解决问题
未找到软件包
Package "@my-scope/my-sdk" not found. Is it installed?
解决方案: 在配置中安装软件包或验证名称.
找不到 SDK CONTEXT. md
No SDK_CONTEXT.md found for @my-scope/my-sdk
解决方案: 使用以下命令生成上下文文件.
生成 SDK 背景
SDK 维护者可以生成 SDK_CONTEXT.md 使用:
cd /path/to/sdk-project
npx amasdk-update-sdk-context --interactive