tscircuit MCP 服务器是一个模型上下文协议(MCP)服务器,它为 Claude 提供了访问 tscircuit 电子组件注册表的能力。借助该服务器,Claude 可以搜索、浏览和分析 tscircuit 生态系统中的电子组件和电路包。
bun install
bun run build
bun start
若要开启热重载进行开发:
bun run dev
若要进行类型检查:
bun run typecheck
将以下内容添加到你的 Claude Desktop MCP 配置文件中:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": {
"tscircuit": {
"command": "bun",
"args": ["/path/to/tscircuit-mcp/build/index.js"]
}
}
}
若你倾向于使用 Node.js:
{
"mcpServers": {
"tscircuit": {
"command": "node",
"args": ["/path/to/tscircuit-mcp/build/index.js"]
}
}
}
请将 /path/to/tscircuit-mcp 替换为你实际的安装路径。
MCP 服务器提供了以下 Claude 可读取的资源:
| 资源类型 | URI | 描述 | 参数 |
|---|---|---|---|
| 搜索组件 | tscircuit://packages/search?q={query}&limit={limit}&category={category} |
来自 tscircuit 注册表的搜索结果 | q(必需):搜索查询;limit(可选):最大结果数(默认:10);category(可选):组件类别过滤器 |
| 封装详情 | tscircuit://packages/{packageName} |
详细的封装信息 | 无 |
| 封装源代码 | tscircuit://packages/{packageName}/code?version={version} |
组件源代码 | version(可选):特定版本(默认为最新版本) |
Claude 可使用以下工具与 tscircuit 注册表进行交互:
| 工具名称 | 描述 | 参数 | 示例 |
|---|---|---|---|
search_components |
在 tscircuit 注册表中搜索电子组件 | query(字符串,必需):搜索词;limit(数字,可选):最大结果数(默认:10);category(字符串,可选):组件类别过滤器 |
json { "query": "3.3V voltage regulator", "limit": 5, "category": "ic" } |
get_package_details |
获取特定 tscircuit 封装的详细信息 | packageName(字符串,必需):完整的封装名称 |
json { "packageName": "seveibar/red-led" } |
get_package_code |
检索 tscircuit 组件的源代码 | packageName(字符串,必需):封装名称;version(字符串,可选):特定版本 |
json { "packageName": "seveibar/red-led", "version": "1.0.0" } |
analyze_component |
分析组件的电气规格和封装尺寸 | packageName(字符串,必需):要分析的封装 |
json { "packageName": "seveibar/red-led" } |
Claude 查询:“帮我查找 SOT - 23 封装的 3.3V 电压调节器”
Claude 将使用 search_components 工具:
{
"query": "3.3V voltage regulator SOT-23",
"category": "ic"
}
Claude 查询:“ESP32 模块封装的规格是什么?”
Claude 将使用 get_package_details 工具:
{
"packageName": "AnasSarkiz/ESP32_module"
}
Claude 查询:“给我展示红色 LED 组件的实现代码”
Claude 将使用 get_package_code 工具:
{
"packageName": "seveibar/red-led"
}
Claude 查询:“比较这两个电阻封装的规格”
Claude 将多次调用 analyze_component 工具来比较组件。
服务器与官方 tscircuit 注册表 https://registry-api.tscircuit.com 集成:
POST /packages/search,请求体为 {"query": "search term"}封装名称遵循 author/package - name 格式(例如,seveibar/usb - c - flashlight),并以 @tsci/author.package - name 的形式发布到 npm。
支持用于过滤的组件类别如下:
resistor - 电阻器capacitor - 电容器inductor - 电感器diode - 二极管transistor - 晶体管ic - 集成电路connector - 连接器led - LEDswitch - 开关sensor - 传感器crystal - 晶体和振荡器relay - 继电器transformer - 变压器fuse - 保险丝battery - 电池motor - 电机display - 显示器antenna - 天线other - 其他组件bun run build - 将 TypeScript 编译为 JavaScriptbun start - 启动 MCP 服务器bun run dev - 开启热重载的开发模式bun test - 运行测试bun run typecheck - 进行类型检查而不进行编译tscircuit-mcp/
├── src/
│ ├── index.ts # 主入口点
│ ├── server.ts # MCP 服务器实现
│ ├── types.ts # TypeScript 类型定义
│ └── tscircuit-api.ts # 注册表 API 客户端
├── build/ # 编译后的 JavaScript 输出
├── package.json
├── tsconfig.json
└── README.md
服务器包含全面的错误处理机制,可处理以下情况:
设置 DEBUG 环境变量以启用详细日志记录:
DEBUG=tscircuit-mcp npm start
以编程方式清除缓存:
// 通过服务器实例访问
server.getAPI().clearCache();
// 获取缓存统计信息
const stats = server.getAPI().getCacheStats();
console.log(`Cache size: ${stats.size} entries`);
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
若遇到问题或有疑问: