](https://www.python.org/downloads/)  
MCP 服务器
项目完整性联盟(PIA) 旨在使与美国政府数据集的合作更容易和人工智能友好。我们已经从各种来源获取了数十万份文件和文章,而且这个列表还在不断增长。此MCP服务器使人工智能能够在比大多数源网站更详细的级别上搜索这些数据,例如,在PDF报告中搜索以找到文本和图像出现的确切页面。
完全归因于令人惊叹的开放联邦数据源,PIA提供的数据中的所有链接都将始终指向原始来源。
目前,数据集列表包括:
- 美国政府问责局(GAO) -自2010年以来,已有1万份联邦报告和5.5万份公开监督建议
- Overlight.gov -自2010年以来,有2.8万份OIG联邦报告和2.9万份公开监督建议
- 美国国会 -第118和119次会议的法案文本
- 司法部(DOJ) -自2000年以来的195k份新闻稿
- 联邦机构年度报告——国会理由、财务报告、绩效报告——10个优先机构的139份报告,2024年的覆盖率最高。
- 所有国会研究服务报告-22k份报告由 EveryCRSReport.com
- 美国总统行政命令——根据《联合国宪章》规定的最后7任总统的命令 联邦公报.
这些数据每周更新一次,我们很快就会添加更多的数据集和工具。
如果您有任何问题或对其他数据集的要求,我们期待通过提出问题来听取您的意见 这里.
有关如何在Claude和ChatGPT等平台中使用PIA的MCP资源的更多信息,请参阅 PIA连接.
✨ 核心功能
- 🔎 文档搜索:使用全面的OData过滤选项查询PIA数据库
- 📊 面搜索:发现可用的筛选字段和值
- 📝 AI指令提示:提示LLM如何总结搜索结果和使用搜索工具
🚀 快速开始
获取PIA API密钥
- 首选 https://mcp.programintegrity.org/get-api-key
- 如果你没有 自由 PIA帐户,单击“没有帐户?”?创建一个链接,否则登录
- 登录后,您应该会自动收到密钥
使用Docker MCP工具包安装(推荐)
- 下载并运行最新版本的
- 导航到“MCP工具包”
- 搜索“项目诚信联盟”
- 单击“+”添加为服务器
- 在“配置”下输入您的密钥
- 在“MCP工具包”中导航到“客户端”
- 选择一个,例如“克劳德桌面”
- 启动您的客户
- 现在,您应该看到“pia_search_content”和其他工具
通过Smithery安装
通过以下方式自动安装Claude Desktop的PIA服务器 铁匠铺:
npx -y @smithery/cli install pia-mcp-server --client claude手动安装
使用紫外线进行安装:
uv tool install pia-mcp-server刷新工具规范(列出时不需要API密钥)
此本地服务器中的工具列表由本地快照提供,因此工具 即使没有API密钥也是可发现的。从远程刷新快照 服务器,运行:
PIA_API_KEY=your_key python utils/refresh_tools.py发展:
# Clone and set up development environment
git clone https://github.com/Program-Integrity-Alliance/pia-mcp-local.git
cd pia-mcp-local
# Create and activate virtual environment
uv venv
source .venv/bin/activate
# Install with test dependencies
uv pip install -e ".[test]"对于Docker:
# Build the Docker image if you want to use a local image
git clone https://github.com/Program-Integrity-Alliance/pia-mcp-local.git
cd pia-mcp-local
docker build -t pia-mcp-server:latest .🔌 MCP集成
将此配置添加到MCP客户端配置文件中:
{
"mcpServers": {
"pia-mcp-server": {
"command": "uv",
"args": [
"tool",
"run",
"pia-mcp-server",
"--api-key", "YOUR_API_KEY"
],
"cwd": "/path/to/your/pia-mcp-local"
}
}
}对于Docker:
您必须构建Docker镜像。..
docker build -t pia-mcp-server:latest .
然后将此添加到您的客户,例如克劳德。..
{
"mcpServers": {
"pia-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"pia-mcp-server:latest",
"--api-key", "YOUR_API_KEY"
]
}
}
}💡 可用工具
服务器提供14个工具用于搜索项目完整性联盟(PIA)数据库:
核心搜索工具
1. pia_search_content
目的: 用于查询PIA数据库中文档内容和建议的综合搜索工具。
说明: 返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。每个结果都包括相应的引用和数据源归属。主要数据来源包括:司法部(202k+份文件)、Congress.gov(31k+份文档)、Oversight.gov(24k+份)、CRS(22k+份文献)、GAO(10k+份)和《联邦公报》(1k+份行政命令)。使用pia_search_contentexecutive_orders仅搜索行政命令。支持使用布尔逻辑、运算符和分组进行复杂的OData过滤。
参数:
query(必填):搜索查询文本filter(可选):支持复杂布尔逻辑的OData筛选器表达式page(可选):页码(默认:1)page_size(可选):每页结果(默认值:5)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
2. pia_oversight_recommendations
目的: 默认情况下启用了方面的搜索监督建议(开放建议数据集)。
说明: 返回全面的推荐结果,包括完整的引用信息和可点击的链接,以便正确归因。当用户具体询问监督建议或公开建议时,请使用此选项。
参数:
query(必填):搜索查询文本filter(可选):支持复杂布尔逻辑的OData筛选器表达式page(可选):页码(默认:1)page_size(可选):每页结果(默认值:100)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:true)
3. pia_search_content_wide
目的: 通过按文档ID进行结果重复数据删除,在多个数据集和数据源中搜索。
说明: 将跨数据集和源的结果与默认的小页面大小组合在一起,因为结果更广泛。支持用于目标范围搜索的可选数据集和数据源过滤器。
参数:
query(必填):搜索查询文本filter(可选):支持复杂布尔逻辑的OData筛选器表达式page(可选):页码(默认:1)page_size(可选):每页结果(默认值:5)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)data_sets(可选):列表SourceDocumentDataSet要搜索的值data_sources(可选):列表SourceDocumentDataSource要搜索的值data_sets_by_source(可选):将数据源映射到数据集列表
4. pia_search_content_facets
目的: 获取PIA数据库内容搜索的可用方面(筛选值)。
说明: 这有助于在执行内容搜索之前了解可用的筛选值。主要数据来源包括:司法部(202k+份文件)、Congress.gov(31k+份文档)、Oversight.gov(24k+份)、CRS(22k+份文献)、GAO(10k+份)和《联邦公报》(1k+份行政命令)。使用pia_search_contentexecutive_orders仅搜索行政命令。
参数:
query(可选):用于获取方面的可选查询(默认值:“”)filter(可选):可选OData筛选器表达式
5. pia_search_titles
目的: 仅在项目完整性联盟(PIA)数据库中搜索文档标题。
说明: 返回文档标题和元数据,而不搜索完整内容。可用于按标题查找特定文档或查找可用文档。主要数据来源包括:司法部(202k+份文件)、Congress.gov(31k+份文档)、Oversight.gov(24k+份)、CRS(22k+份文献)、GAO(10k+份)和《联邦公报》(1k+份行政命令)。使用pia_search_contentexecutive_orders仅搜索行政命令。
参数:
query(必填):搜索查询文本(仅搜索文档标题)filter(可选):支持复杂布尔逻辑的OData筛选器表达式page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
6. pia_search_titles_facets
目的: 获取PIA数据库标题搜索的可用方面(筛选值)。
说明: 这有助于在执行标题搜索之前了解可用的筛选值。主要数据来源包括:司法部(202k+份文件)、Congress.gov(31k+份文档)、Oversight.gov(24k+份)、CRS(22k+份文献)、GAO(10k+份)和《联邦公报》(1k+份行政命令)。使用pia_search_contentexecutive_orders仅搜索行政命令。
参数:
query(可选):用于获取方面的可选查询(默认值:“”)filter(可选):可选OData筛选器表达式
特定机构搜索工具
7. pia_search_content_gao
目的: 搜索GAO文件内容和建议。
说明: 此工具会自动筛选结果,仅包括政府问责局(GAO)的文件。返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“GAO”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
8. pia_search_content_oig
目的: 搜索OIG文档内容和建议。
说明: 该工具自动筛选结果,仅包括来自监察长办公室(OIG)的文件。返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“Oversight.gov”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
9. pia_search_content_crs
目的: 搜索CRS文件内容和建议。
说明: 该工具自动过滤结果,仅包括国会研究服务局(CRS)的文件。返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“CRS”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
10. pia_search_content_doj
目的: 搜索司法部文件内容和建议。
说明: 该工具会自动筛选结果,仅包括司法部的文件。返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“司法部”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
11. pia_search_content_congress
目的: 搜索Congress.gov文件内容和建议。
说明: 此工具会自动筛选结果,仅包括来自Congress.gov的文档。返回包含完整引用信息和可点击链接的综合结果,以便正确归因。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“Congress.gov”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
行政命令搜索工具
12. pia_search_content_executive_orders
目的: 从《联邦公报》中搜索行政命令文件内容。
说明: 此工具自动筛选结果,仅包括《联邦公报》中的行政命令(https://www.federalregister.gov/).返回全面的结果,包括完整的引用信息和可点击的链接,以便正确归因。每个结果都包括相应的引用和数据源归属。支持使用布尔逻辑、运算符和分组进行复杂的OData过滤。
参数:
query(必填):搜索查询文本filter(可选):OData筛选器表达式(SourceDocumentDataSource自动设置为“联邦公报”,SourceDocumentDataSet设置为“行政命令”)page(可选):页码(默认:1)page_size(可选):每页结果(默认值:10)search_mode(可选):搜索模式(默认:内容)limit(可选):最大结果限制include_facets(可选):在结果中包含方面(默认值:false)
行政命令覆盖范围:
- 时间段: 最近7任总统
- 来源: 《联邦公报》(https://www.federalregister.gov/presidential-documents/executive-orders)
- 体积: 1k+行政命令
- 更新频率: 每周更新
搜索示例:
- 搜索网络安全行政命令:
{"query": "cybersecurity"} - 搜索最近的行政命令:
{"query": "artificial intelligence", "filter": "SourceDocumentPublishDate ge '2023-01-01'"} - 按特定主题搜索:
{"query": "climate change OR environmental"}
ChatGPT连接器工具
13. search
目的: ChatGPT连接器的简单搜索界面。
说明: 搜索项目完整性联盟(PIA)数据库,并返回一个可能相关的搜索结果列表,其中包含标题、片段和引用URL。在集成ChatGPT连接器时,此端点是OpenAI MCP规范支持的端点之一。
参数:
query(必填):用于在PIA数据库中查找相关文档的搜索查询字符串
14. fetch
目的: 按ID检索ChatGPT连接器的文档。
说明: 使用其唯一标识符从PIA数据库中检索特定文档的完整内容。在集成ChatGPT连接器时,此端点是OpenAI MCP规范支持的端点之一。
参数:
id(必填):要检索的文档的唯一标识符
搜索模式
通过OData过滤和分面进行全面搜索。这 filter 参数使用标准 OData查询语法.
- 内容搜索 (
pia_search_content):在文档内容和建议中搜索全面结果 - 广泛的内容搜索 (
pia_search_content_wide):在具有重复数据消除结果的数据集和源之间进行搜索 - 标题搜索 (
pia_search_titles):仅搜索文档标题-对于文档发现更快更有用
筛选器表达式示例:
- 基本筛选器:
"SourceDocumentDataSource eq 'GAO'" - 多种条件:
"SourceDocumentDataSource eq 'GAO' or SourceDocumentDataSource eq 'Oversight.gov'" - 复杂分组:
"SourceDocumentDataSource eq 'GAO' and RecStatus ne 'Closed'" - 否定:
"SourceDocumentDataSource ne 'Department of Justice' and not (RecStatus eq 'Closed')" - 列出成员资格:
"IsIntegrityRelated eq 'Yes' and RecPriorityFlag in ('High', 'Critical')" - 日期范围:
"SourceDocumentPublishDate ge '2020-01-01' and SourceDocumentPublishDate le '2024-12-31'" - 布尔分组:
"(SourceDocumentDataSource eq 'GAO' or SourceDocumentDataSource eq 'Oversight.gov') and RecStatus eq 'Open'"
OData筛选器运算符:
eq-等于:field eq 'value'ne-不等于:field ne 'value'gt-大于:amount gt 1000ge-大于或等于:date ge '2023-01-01'lt-小于:amount lt 5000le-小于或等于:date le '2023-12-31'in-列表中的值:status in ('Active', 'Pending')
OData逻辑运算符:
and-逻辑与:field1 eq 'value' and field2 gt 100or-逻辑OR:status eq 'Active' or status eq 'Pending'not-逻辑不是:not (status eq 'Inactive')()-分组:(field1 eq 'A' or field1 eq 'B') and field2 gt 0
OData字符串函数:
contains(field, 'text')-字段包含文本startswith(field, 'prefix')-字段以前缀开头endswith(field, 'suffix')-字段以后缀结尾
2.PIA搜索面
查找可用于筛选的字段名称和值。
工具名称: pia_search_facets
参数:
query(可选):用于获取方面的可选查询(默认值:“”)
目的:
- 发现可用的字段名称(例如。,
data_source,document_type,agency) - 查找可能的字段值(例如,“OIG”、“GAO”、“audit_report”)
- 了解每个字段的数据类型(字符串、日期、数字)
这些信息有助于您构建正确的 filter 搜索工具的表达式。
🔍 筛选器发现工作流
要有效地使用OData过滤器,请遵循以下工作流程:
步骤1:发现可用字段
使用 pia_search_facets 该工具用于探索哪些字段可用于筛选。您可以提供查询以获取与搜索主题相关的方面,也可以省略查询以查看所有可用字段。
步骤2:检查字段值
方面响应将显示可用字段及其可能值:
{
"SourceDocumentDataSource": ["Oversight.gov", "GAO", "CMS", "FBI"],
"RecStatus": ["Open", "Closed", "In Progress"],
"RecPriorityFlag": ["High", "Medium", "Low", "Critical"],
"IsIntegrityRelated": ["Yes", "No"],
"SourceDocumentPublishDate": "2020-01-01 to 2024-12-31"
}第3步:建立目标搜索
使用 pia_search 具有已发现字段的工具,用于创建精确的OData过滤器:
基本示例:
Query: "Medicare fraud"
Filter: "SourceDocumentDataSource eq 'GAO' and SourceDocumentPublishDate ge '2023-01-01' and IsIntegrityRelated eq 'Yes'"复杂示例:
Query: "healthcare violations"
Filter: "(SourceDocumentDataSource eq 'Oversight.gov' or SourceDocumentDataSource eq 'CMS') and RecPriorityFlag in ('High', 'Critical') and SourceDocumentPublishDate ge '2023-01-01'"📝 AI指令提示
服务器提供提示,指导调用LLM如何有效地使用PIA工具和格式化响应:
1.总结指导
提供如何用适当的引用总结PIA搜索结果中的信息的指导。
提示名称: summarization_guidance
目的: 确保法学硕士通过内联引用和适当的参考格式创建基于事实的摘要
论据: 无(可重复使用的指南)
退货: 全面的指导说明,指导法学硕士:
- 仅包括出现在提供的搜索结果中的事实(无先验知识)
- 对每个事实陈述使用适当的内联引用格式\[n\]
- 创建引用部分,格式为:\[n\]文档标题--第X页--源名称--URL
- 遵循客观、真实的风格指南,不要猜测或填充
- 完全按照搜索结果中提供的内容包含所有必要的归因元素
- 合理组织信息,确保每个事实都有支持性引用
2.搜索指南
提供有关如何在有或没有过滤器的情况下执行PIA搜索的指导。
提示名称: search_guidance
目的: 指导LLM完成正确的搜索工作流程,包括过滤器发现和所有四种搜索工具的OData语法
论据: 无(可重复使用的指南)
退货: 全面的指导说明,指导法学硕士:
- 默认情况下运行未过滤的搜索,除非提到过滤条件
- 在内容搜索(全面)和标题搜索(快速发现)之间进行选择
- 使用
pia_search_content_facets或pia_search_titles_facets查找可用的筛选字段和值 - 使用正确的语法和实际字段名构建有效的OData筛选器表达式
- 应用适当的OData运算符:
eq,ne,gt,ge,lt,le,and,or - 当过滤后的搜索未返回结果时,退回到未过滤的搜索
- 使用前,根据可用方面验证所有筛选字段
⚙️ 配置
API密钥始终通过MCP服务器配置提供。可以通过环境变量配置其他设置:
| 变量 | 目的 | 默认值 |
|---|---|---|
PIA_API_URL | PIA API端点 | https://mcp.programintegrity.org/ |
REQUEST_TIMEOUT | API请求超时(秒) | 60 |
MAX_RESULTS | 每次查询的最大结果数 | 50 |
MCP配置
API密钥必须使用 --api-key 争论。联系程序完整性联盟以获取您的API密钥。
{
"mcpServers": {
"pia-mcp-server": {
"command": "pia-mcp-server",
"args": ["--api-key", "YOUR_API_KEY"]
}
}
}替换 YOUR_API_KEY 使用您的实际PIA API密钥。
🧪 测试
运行测试套件:
python -m pytest跑步覆盖:
python -m pytest --cov=pia_mcp_server📄 许可证
根据MIT许可证发布。有关详细信息,请参阅LICENSE文件。
______________________________________________________________________
由...制作❤️ 政府透明度和问责制
