沃克Palantir MCP服务器
使用Express.js构建的模型上下文协议(MCP)服务器,为分析竞选财务数据、立法投票模式和社交媒体监控提供了全面的工具。
特性
活动财务分析
- 捐赠者研究:按姓名搜索捐赠者,分析捐赠模式
- 立法者地图:将立法者与其竞选财务实体联系起来
- 账单分析:使用向量相似性搜索查找立法者投票通过的法案
- 会话窗口:分析立法会议前后的捐款情况
- RTS职位:按主题相似性搜索发言请求职位
社交媒体监控
- 事件查询:使用日期、位置、演员、标签过滤器搜索事件
- 学校追踪:确定参与教育相关活动的学校
- 演员分析:获取有关人员和组织的详细信息
- sql查询:执行只读数据库查询
矢量搜索功能
- 账单嵌入:按语义相似性搜索账单
- 捐赠者嵌入:按主题相关性查找捐助者
- RTS嵌入:按主题确定利益攸关方的立场
快速开始
地方发展
- 克隆并安装:
git clone
cd express-mcp
npm install- 设置环境变量:
cp ENVIRONMENT_VARIABLES.md .env
# Edit .env with your actual values- 在本地运行:
npm run dev- 测试服务器:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'Vercel部署
看 部署.md 获取完整的部署说明。
可用工具
核心活动财务工具
resolve-legislator-by-name-按姓名查找立法者search-donor-totals-window-在时间窗口内分析捐款search-bills-for-legislator-立法者投票表决的法案get-bill-text-获取账单详细信息和全文get-bill-votes-详细投票记录search-rts-by-vector-RTS位置相似性
矢量搜索工具
search-bill-embeddings-语义票据搜索search-donor-embeddings-基于主题的捐赠者搜索search-rts-embeddings-RTS位置相似性
实用工具
session-window-计算会话日期范围get-session-info-立法会会期详情get-bill-sponsors-账单赞助信息get-transaction-groups-活动财务类别
社交媒体工具
run-sql-query-执行只读SQLget-filter-options-可用过滤器选项get-schools-involved-教育事件分析
环境变量
所需的环境变量:
# Primary Database
SUPABASE_URL=https://your-primary-project.supabase.co
SUPABASE_ANON_KEY=your_primary_anon_key
SUPABASE_SERVICE_KEY=your_primary_service_key
# Campaign Finance Database
CAMPAIGN_FINANCE_SUPABASE_URL=https://your-cf-project.supabase.co
CAMPAIGN_FINANCE_SUPABASE_ANON_KEY=your_cf_anon_key
CAMPAIGN_FINANCE_SUPABASE_SERVICE_KEY=your_cf_service_key
# OpenAI for embeddings
OPENAI_API_KEY=sk-your_openai_key
# Server
PORT=3000使用示例
为立法者寻找捐赠者
{
"method": "tools/call",
"params": {
"name": "search-donor-totals-window",
"arguments": {
"query_text": "construction real estate",
"recipient_entity_ids": [123, 456],
"session_id": 57,
"days_before": 100,
"days_after": 100
}
}
}按主题搜索账单
{
"method": "tools/call",
"params": {
"name": "search-bills-for-legislator",
"arguments": {
"query_text": "education funding",
"legislator_id": 123,
"session_id": 57
}
}
}决议立法者
{
"method": "tools/call",
"params": {
"name": "resolve-legislator-by-name",
"arguments": {
"name": "Hernandez"
}
}
}建筑
- Express.js 支持MCP协议的服务器
- Supabase 用于数据库操作和RPC函数
- 开放人工智能 用于文本嵌入(text-embedding-3-small)
- TypeScript 用于类型安全
- 维塞尔 用于无服务器部署
数据库模式
服务器连接到两个Supabase数据库:
- 主数据库社交媒体监控、活动、参与者
- 活动财务数据库:立法数据、捐款、法案、投票
关键表格包括:
bills-带有嵌入条款的立法法案cf_transactions-活动财务交易cf_transaction_entities-有嵌入的捐助实体rts_positions-请求发言立场legislators-立法者信息sessions-立法会议
贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
许可证
ISC许可证-详见package.json。
支持
对于问题和疑问:
- 检查Vercel中的部署日志
- 使用MCP检查员测试单个工具
- 验证环境变量
- 检查Supabase连接状态
