MCP转换工具

一款用于发现、分析和将模型上下文协议(MCP)服务器转换为Claude Code技能的工具。

  • by Myst4ke
  • HTML
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Myst4ke/mcp-to-skills-converter

使用说明

MCP到技能转换器

一个用于发现、分析模型上下文协议(MCP)服务器并将其转换为Claude代码技能的工具。

特性

MCP探测器(US-1)

  • 跨多个源(npm、GitHub、本地安装)搜索MCP
  • 基于智能匹配的模糊搜索
  • 用于快速结果的并行API查询
  • 结果缓存以提高性能
  • 交互式CLI界面
  • 离线模式支持

安装

npm install

配置

环境设置

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 并配置您的设置:
# Required: None (all settings have sensible defaults)

# Recommended: GitHub API Token for higher rate limits
GITHUB_TOKEN=your_github_token_here

配置选项

MCP Finder可以使用环境变量进行配置。所有设置都是可选的,并具有合理的默认值。

API配置

变量 描述 默认值
GITHUB_TOKEN 用于身份验证的GitHub API令牌 无(可选)
NPM_REGISTRY_URL npm注册表基URL https://registry.npmjs.org
GITHUB_API_URL GitHub API基础URL https://api.github.com
SEARCH_TIMEOUT_MS 请求超时(毫秒) 5000 (5秒)
MAX_RETRY_ATTEMPTS 失败请求的最大重试次数 3
RETRY_BASE_DELAY_MS 指数退避的基本延迟 1000 (1秒)

获取GitHub代币:

  1. 首选 GitHub设置>开发者设置>个人访问令牌
  2. 点击“生成新令牌(经典)”
  3. 选择范围: public_repo, read:packages
  4. 将令牌复制到您的 .env 文件

搜索配置

变量 描述 默认值
MAX_SEARCH_RESULTS 要返回的最大结果数 5
FUZZY_SEARCH_THRESHOLD 模糊匹配阈值(0-1,较低=更严格) 0.4
PARALLEL_SEARCH 启用并行API查询 true
MAX_CONCURRENT_REQUESTS 最大并发API请求数 3

模糊搜索阈值指南:

  • 0.0 =仅完美匹配(不允许拼写错误)
  • 0.2 =非常严格(允许轻微拼写错误)
  • 0.4 =平衡(推荐,处理常见拼写错误)
  • 0.6 =宽松(允许显著变化)
  • 1.0 =匹配所有内容(不推荐)

缓存配置

变量 描述 默认值
CACHE_ENABLED 启用结果缓存 true
CACHE_TTL_HOURS 缓存生存时间(小时) 24
CACHE_MAX_SIZE 最大缓存条目数 1000
CACHE_DIR 缓存存储目录 ~/.mcp-finder/cache

缓存优势:

  • 减少API呼叫(遵守速率限制)
  • 更快的重复搜索
  • 脱机工作以获取缓存结果
  • 自动清理过期条目

本地MCP目录

变量 描述 默认值
LOCAL_MCP_DIRS 以逗号分隔的要扫描的目录列表 ~/.claude/mcps/

具有多个目录的示例:

LOCAL_MCP_DIRS=~/.claude/mcps/,~/projects/my-mcps/,/usr/local/mcps/

日志记录配置

变量 描述 默认值
LOG_LEVEL 日志级别:调试、信息、警告、错误 info
DEBUG_API_CALLS 启用详细的API调用日志记录 false
LOG_FILE_PATH 日志文件路径 ~/.mcp-finder/logs/mcp-finder.log

配置示例

开发设置(详细日志记录)

LOG_LEVEL=debug
DEBUG_API_CALLS=true
CACHE_ENABLED=false

生产设置(性能优化)

GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
CACHE_ENABLED=true
CACHE_TTL_HOURS=24
MAX_CONCURRENT_REQUESTS=5
PARALLEL_SEARCH=true

离线模式(仅限本地)

CACHE_ENABLED=true
SEARCH_TIMEOUT_MS=1000
# Will fallback to local search when APIs timeout

价格有限的环境

MAX_CONCURRENT_REQUESTS=1
RETRY_BASE_DELAY_MS=2000
MAX_RETRY_ATTEMPTS=5

用法

MCP查找器

MCP Finder通过智能模糊搜索帮助您在多个源中发现模型上下文协议服务器。

快速开始

搜索MCP:

npm run mcp-finder search "database"

使用选项搜索:

# Verbose output with more results
npm run mcp-finder search "filesystem" --verbose --max-results=10

# Show similarity scores
npm run mcp-finder search "github" --show-scores

# Local-only search (offline mode)
npm run mcp-finder search "slack" --no-github --no-npm

# Use GitHub token for higher rate limits
npm run mcp-finder search "server" --github-token=ghp_your_token

特性

  • 多源搜索:同时搜索npm、GitHub和本地安装
  • 模糊匹配:智能处理拼写错误和部分名称
  • 快速结果:具有智能缓存的并行查询
  • 离线支持:优雅地回退到本地搜索
  • 交互式CLI:带进度指示器的彩色编码输出

CLI选项

选项 描述 默认值
--verbose 启用详细输出 false
--no-color 禁用彩色输出 false
--show-scores 显示相似性得分 false
--max-results=N 要显示的最大结果 5
--github-token=TOKEN GitHub API令牌 无
--no-github 禁用GitHub搜索 false
--no-npm 禁用npm搜索 false
--no-local 禁用本地扫描 false

程序化使用

import { searchCommand, searchAndSelect } from './cli/search-command';

// Basic search
const results = await searchCommand('filesystem');

// Search with options
const results = await searchCommand('database', {
  verbose: true,
  maxResults: 10,
  showScores: true
});

// Interactive selection
const { selected, cancelled } = await searchAndSelect('github');
if (!cancelled) {
  console.log(`Selected: ${selected.name}`);
}

文档

有关详细文档,请参阅 docs/mcp-finder.md:

  • 完整的API参考
  • 配置选项
  • 故障排除指南
  • 高级示例

发展

项目结构

mcp-to-skills-converter/
├── src/
│   ├── config/          # Configuration files
│   │   └── search-config.ts
│   ├── services/        # Core services (API, search, etc.)
│   ├── cli/            # CLI interface
│   ├── types/          # TypeScript type definitions
│   └── utils/          # Utility functions
├── tests/
│   ├── unit/           # Unit tests
│   ├── integration/    # Integration tests
│   ├── e2e/           # End-to-end tests
│   └── security/       # Security tests
├── .env.example        # Example environment configuration
└── README.md          # This file

运行测试

# Run all tests
npm test

# Run specific test suite
npm test -- --grep "fuzzy search"

# Run with coverage
npm run test:coverage

建筑

npm run build

故障排除

常见问题

“超过了GitHub API速率限制”

  • 将GitHub令牌添加到您的 .env 文件
  • 经过身份验证的请求具有更高的速率限制(5000/小时vs 60/小时)

“搜索时间太长”

  • 增加 SEARCH_TIMEOUT_MS 如果你的互联网速度很慢
  • 启用缓存 CACHE_ENABLED=true
  • 减少 MAX_SEARCH_RESULTS 以获得更快的响应

“未找到结果”

  • 试着降低 FUZZY_SEARCH_THRESHOLD 用于更严格的匹配
  • 检查您的互联网连接(可能处于离线模式)
  • 验证本地MCP目录是否存在并包含MCP

“缓存不工作”

  • 确保 CACHE_DIR 可写
  • 检查磁盘空间
  • 尝试清除缓存: rm -rf ~/.mcp-finder/cache/

调试模式

启用调试模式以进行详细的故障排除:

LOG_LEVEL=debug
DEBUG_API_CALLS=true
npm run mcp-finder -- search "your-query"

许可证

麻省理工学院

贡献

欢迎投稿!请在提交PR之前阅读我们的投稿指南。