cgov mcp
一种模型上下文协议(MCP)服务器,通过PostgreSQL提供对Cardano治理数据的只读访问。
概述
此MCP服务器使Claude等AI助手能够查询Cardano治理数据,包括:
- DReps (授权代表)-投票权、简介
- 提案 -治理行动、状态、投票结果
- 投票 -带有基本URL的链上投票记录
- SPO (权益池运营商)和 CC (宪法委员会)成员
安装
npm install
npm run build配置
复制 .env.example 到 .env 并配置:
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=cgov
DB_USER=postgres
DB_PASSWORD=postgres
# Server
TRANSPORT_MODE=http # or "stdio" for Claude Desktop
PORT=3000
HOST=0.0.0.0用法
HTTP模式(默认)
npm start服务器运行在 http://localhost:3000 具有端点:
POST /mcp-MCP协议端点GET /health-健康检查
Claude桌面配置(HTTP)
在服务器运行时,添加到您的Claude Desktop配置中:
{
"mcpServers": {
"cgov-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}标准模式(备选)
如果您希望Claude Desktop直接生成和管理服务器进程(无需单独 npm start 需要)。
集 TRANSPORT_MODE=stdio 在 .env,然后配置Claude Desktop:
{
"mcpServers": {
"cgov-mcp": {
"command": "node",
"args": ["/path/to/cgov-mcp/dist/index.js"],
"env": {
"TRANSPORT_MODE": "stdio",
"DB_HOST": "localhost",
"DB_NAME": "cgov",
"DB_USER": "postgres",
"DB_PASSWORD": "postgres"
}
}
}
}可用工具
| 工具 | 说明 |
|---|---|
query_database | 执行只读SQL查询 |
list_tables | 列出所有数据库表 |
describe_table | 获取表架构/结构 |
search_constitution | 在卡尔达诺宪法中搜索相关文本 |
get_constitution_section | 按名称获取宪法的特定章节 |
search_vision_2030 | 搜索卡尔达诺2030年愿景战略框架 |
get_vision_section | 获取《2030年愿景》文件的特定部分 |
get_vision_kpis | 获取2030年愿景的关键绩效指标和目标 |
search_voting_rationale | 按关键字搜索投票理由 |
get_vote_rationale | 获取特定投票的完整理由 |
get_drep_voting_history | 获取DRep投票历史及其理由 |
get_proposal_rationales | 获取特定提案的所有理由 |
get_rationale_stats | 获取基本原理覆盖率的统计数据 |
投票理由工具
投票理由工具提供了对具有CIP-100/CIP-136结构化理由的链上投票数据的访问:
# Search for rationales containing specific keywords
search_voting_rationale(query="constitutional")
# Filter by vote type and voter type
search_voting_rationale(query="treasury", vote_filter="NO", voter_type="DREP")
# Get full rationale for a specific vote
get_vote_rationale(vote_id="abc123...")
# Get rationale by DRep + proposal combination
get_vote_rationale(drep_id="drep1...", proposal_id="gov_action1...")
# Get a DRep's voting history with rationales
get_drep_voting_history(drep_id="drep1...")
# Filter by governance action type
get_drep_voting_history(drep_id="drep1...", governance_action_type="TREASURY_WITHDRAWALS")
# Get all rationales for a proposal grouped by vote choice
get_proposal_rationales(proposal_id="gov_action1...")
# Get rationale coverage statistics
get_rationale_stats()
get_rationale_stats(governance_action_type="INFO_ACTION")JSON结构原理(CIP-136)
基本原理以CIP-100/CIP-136 JSON格式存储,其中包含:
body.summary-投票理由简述body.rationaleStatement-详细的理由body.conclusion-最后结论body.precedentDiscussion-讨论相关先例body.counterargumentDiscussion-对反驳的承认body.internalVote-内部投票细分(CC投票)body.references-相关文章和文件的链接authors-谁写的理由
2030年愿景搜索示例
卡尔达诺2030年愿景战略框架概述了使卡尔达诺成为“世界操作系统”的道路:
# Search for specific topics
search_vision_2030(query="TVL target")
# Get a specific pillar
get_vision_section(section_name="Pillar 3")
# Get all KPIs
get_vision_kpis()
# Filter KPIs by category
get_vision_kpis(category="Governance")
# Search within a specific pillar
search_vision_2030(query="DeFi", pillar="Adoption")宪法搜索示例
卡尔达诺宪法包含治理规则、原则和护栏。使用宪法工具搜索和检索具体条款:
# Search for treasury-related provisions
search_constitution(query="treasury withdrawal")
# Get a specific article
get_constitution_section(section_name="Article VII")
# Find a specific tenet
get_constitution_section(section_name="Tenet 5")
# Look up a guardrail code
get_constitution_section(section_name="TREASURY-01a")
# Search with full section output
search_constitution(query="DRep voting threshold", include_full_sections=true)SQL查询示例
-- Get top 10 DReps by voting power
SELECT name, "votingPower" FROM "Drep" ORDER BY "votingPower" DESC LIMIT 10;
-- Get voting history for a DRep
SELECT v.vote, p.title, p."governanceActionType"
FROM "OnchainVote" v
JOIN "Proposal" p ON v."proposalId" = p."proposalId"
WHERE v."drepId" = 'drep1...'
ORDER BY v."votedAt" DESC;
-- Get vote distribution summary
SELECT vote, COUNT(*) FROM "OnchainVote" GROUP BY vote;数据库模式
核心表
Drep-DRep简介和投票权Proposal-治理建议和元数据OnchainVote-带有基本URL的投票记录SPO-标桩池运营商CC-宪法委员会委员
发展
npm run dev # Watch mode for TypeScript
npm run build # Compile TypeScript
npm run clean # Remove dist folder许可证
阿帕奇-2.0
