MCP到技能转换器
一个用于发现、分析模型上下文协议(MCP)服务器并将其转换为Claude代码技能的工具。
特性
MCP探测器(US-1)
- 跨多个源(npm、GitHub、本地安装)搜索MCP
- 基于智能匹配的模糊搜索
- 用于快速结果的并行API查询
- 结果缓存以提高性能
- 交互式CLI界面
- 离线模式支持
安装
npm install配置
环境设置
- 复制示例环境文件:
cp .env.example .env- 编辑
.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代币:
- 首选
- 点击“生成新令牌(经典)”
- 选择范围:
public_repo,read:packages - 将令牌复制到您的
.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之前阅读我们的投稿指南。
