关于 thealgorithms-mcp
thealgorithms-mcp 是面向开发者和编码 Agent 的 MCP 服务,可搜索 TheAlgorithms 各语言仓库中的算法实现,并按需获取源码与示例。
主要功能
- 01发现已索引语言及未收录原因
- 02按语言和类别搜索算法
- 03获取源码和提取出的示例
- 04比较不同语言的实现
- 05自动补全算法名称
适用场景
- 01查找指定语言的算法实现
- 02查看源码和示例以评估复用
- 03比较不同语言仓库中的对应实现
MCP 相关
向 MCP 客户端提供语言与类别列表、算法搜索和获取、跨语言比较及名称建议等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
thealgorithms-mcp
mcp-name: io.github.mcande21/thealgorithms-mcp
一个用于查询 TheAlgorithms 组织中所有语言仓库的 MCP 服务,可搜索算法实现并获取任意实现及其文件内示例。
语言会从组织中自动发现(而非使用硬编码列表):发布了可解析 DIRECTORY.md 的仓库才会被索引。目前支持 24 种语言(Python、Java、C++、JavaScript、Rust、C、TypeScript、PHP、Dart、Kotlin、Ruby、R、Scala、Swift、Julia、Haskell、MATLAB、Zig、Fortran、Nim、Clojure、F#、Jule、aarch64-assembly)。没有 DIRECTORY.md 的仓库(Go、C#、Lua、Solidity 等)会由 list_languages 报告,并说明未纳入的原因,不会出现未提示的遗漏。
混合式设计:每个仓库的 DIRECTORY.md 索引都会缓存在本地(ETag + TTL);文件内容则按需从 raw.githubusercontent.com 获取。组织和语言清单通过 GitHub API 自动发现,并缓存 7 天。无需令牌(设置 GITHUB_TOKEN 可提高速率限制)。请参阅 DESIGN.md。
工具
| 工具 | 用途 |
|---|---|
list_languages() | 已索引的语言(含数量和别名),以及说明未纳入原因的仓库 |
list_categories(language='python') | 某种语言的分类及其条目数量 |
search_algorithms(query, language='python', category?, limit=10) | 排序后的 {name, category, path, score} |
get_category(category, language='python') | 某个分类中的所有算法 |
get_algorithm(path, language='python', include_source=True) | 源码及提取出的示例 |
compare(name, languages?, min_score=90, limit_per_language=1) | 跨语言的实际匹配结果及 missing_in |
suggest(prefix, language='python', limit=10) | 基于 Trie 的名称自动补全(dij → Dijkstra) |
language 接受语言名称或别名(cpp/c++、js、ts 等)。典型流程:
search_algorithms("dijkstra", language="rust") → get_algorithm("src/graph/dijkstra.rs", language="rust")。
在语言支持文件内示例约定时,会提取示例(Python doctests、Rust doc-tests);其他语言则返回源码并附带说明。
安装
从 PyPI 安装(推荐):
{ "thealgorithms": { "command": "uvx", "args": ["thealgorithms-mcp"] } }
从 GitHub 安装:
{ "thealgorithms": {
"command": "uvx",
"args": ["--from", "git+https://github.com/mcande21/thealgorithms-mcp", "thealgorithms-mcp"] } }
从本地检出版本安装(开发):
uv sync
uv run thealgorithms-mcp # serves over stdio
将上述任一项添加到 ~/.normandy-generic/mcp.json(或你的 MCP 客户端配置)中。
验证
uv run python scripts/verify_stdio.py # multi-language contract over stdio
uv run python scripts/verify_language.py rust # one language, end-to-end
该测试程序会通过 stdio 启动服务,并针对实时组织验证每个工具,包括跨 ≥8 种语言获取二分搜索实现,以及跨语言的 compare()。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。