André MCP 是一个 MCP(Model Context Protocol)服务端,用于法国选举数据分析。根据项目说明,它提供 1999 至 2026 年间 55 场法国选举在投票站(bureau de vote)层面的结果,并与 INSEE 社会人口数据、共和国当选人数据库以及官方行政划分进行交叉。
【主要能力】 服务端提供一系列只读工具,均带有 title 及 readOnlyHint / destructiveHint 标注,且没有任何破坏性工具。query_elections 提供“panel”类动作,可在单次调用中返回结果,以降低触及客户端工具调用上限的风险,包括:compare_elections(针对某一territory比较两次选举)、query_all_circonscriptions(立法选举中每个选区的胜者)、vote_reserve(某政治家族在每投票站的得分与弃权率,即票源储备)、select_communes(按地理、人口与选举标准筛选/排序市镇)、cross_election_panel(某家族或某政治倾向标签在 N 场选举中按市镇的演变)、bureau_breakdown(按投票站透视,含主要政治倾向标签与参与率,可选社会人口数据)。此外还有 query_sql,使用 DuckDB 只读连接,写查询被阻止,对没有显式 LIMIT 的 SELECT / WITH 注入安全 LIMIT。
【文档资源与预置提示】 客户端可自动查阅的文档资源包括:andre://references/methodologies(分析方法,如票源储备、类型学、主成分分析)、andre://references/data_schema(选举数据模式)、andre://references/political_colors(政治家族颜色)、andre://references/election_dates(55 场选举日期)、andre://references/victory_rules(各类选举的胜利规则)、andre://references/nuances(政治倾向标签代码)、andre://references/insee_variables(INSEE 社会人口变量)、andre://skills/electoral-analysis(主技能,含工作流与调试)。预置提示(prompts)有:analyser_commune(对某市镇的完整选举分析)、reserves_de_voix(识别某政治力量的票源储备)、carte_electorale(某省的主题地图)、comparer_elections(两次选举的时间对比)、resultats_rapides(某场选举的综合结果)。
【使用方式】 项目提供托管服务端,开箱即用:https://mcp.andre.vote/mcp,无需安装、无需下载数据、无需认证。可在 Claude Desktop、Cursor、VS Code 等客户端中使用。Claude Desktop 的配置文件位置:macOS 为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 为 %APPDATA%\Claude\claude_desktop_config.json。对于尚不支持 HTTP 传输的客户端,项目说明中提到了相应的处理方式(原文未展开具体配置内容)。
本地运行方面,服务端可在无任何数据的情况下启动并响应内省请求(tools/list、resources/list、prompts/list),也可通过 Docker 运行;但工具调用目前在 monorepo 之外尚不可用,因为服务端将请求委托给 query_elections.py、query_admin.py、generate_map.py 等脚本,这些脚本尚未纳入该包,且完整数据集(约 1.5 GB)需要另行准备。独立 PyPI 包正在准备中。项目建议实际使用连接远程服务端。
【数据来源】 项目说明数据仅来自官方公开来源。社会人口数据通过 Observatoire national des bureaux de vote 的权重从 IRIS 插值到投票站。
【限制与保护措施】 服务端以只读方式公开数据,无需认证。保护措施包括:query_sql 的只读 DuckDB 连接、写查询阻止与安全 LIMIT 注入;并发保护,限制同时执行的重型请求数量,超出时返回“服务器繁忙”的友好响应;/metrics 上提供 Prometheus 指标(工具、延迟、错误率、并发),不暴露参数、结果或会话标识。
【许可与注册】 代码以 MIT 许可发布。该仓库是 André monorepo 中 andre-mcp/ 的自动镜像,monorepo 为真实来源:贡献通过此处的 issue 提交,而非直接 commit(直接提交会在下次镜像时被覆盖)。服务端已在 MCP 官方注册表以 vote.andre/elections 名称发布,命名空间通过在 andre.vote 上的 DNS 验证。数据仍受其各自生产者许可约束(Licence Ouverte 2.0、CC BY 4.0)。
【已知限制】 Claude.ai / Claude Desktop 对每轮对话有约 15-20 次工具调用限制,深入分析(如两轮结果、投票站、社会人口交叉)可能触及该上限,此时可点击“继续”恢复;andre.vote 端没有该限制。本地运行的工具调用在 monorepo 之外尚不可用,完整数据集(约 1.5 GB)需另行准备。项目未提供关于收费、价格或具体效果的信息。