内容
# 法律合规MCP服务器
一款提供法律合规分析的模型上下文协议(MCP)服务器,使用免费/开放的政府API。该服务器使AI助手能够搜索和分析多个司法管辖区的法律文件,包括美国联邦法律、州法律、案例法、欧盟法规等。
**📖 快速链接**:
- [安装指南](#installation) - 3步快速开始
- [MCP设置指南](MCP_SETUP.md) - 使用Cursor IDE或Claude Desktop配置
- [API密钥设置](#api-key-setup) - 获取您的免费API密钥
- [可用工具](#available-tools) - 查看此服务器的功能
## 功能
- **美国联邦法律**:通过GovInfo API搜索美国法典(USC)和联邦法规汇编(CFR)
- **美国案例法**:通过CourtListener API搜索联邦和州法院判决
- **欧盟法规**:通过EUR-Lex抓取欧盟法规(GDPR、AI Act等)
- **州法律**:抓取CA、NY和IL的州法规
- **国会法案**:通过Congress.gov API搜索美国国会法案和立法
- **联邦公报**:搜索每日联邦政府出版物
- **SEC文件**:通过SEC EDGAR访问公司财务文件
- **开放州**:搜索所有50个美国州的立法
- **英国立法**:搜索英国法令和法定文书
- **加拿大法律**:通过CanLII搜索加拿大案例法
- **FDA数据**:搜索药物/设备不良事件和食品执法报告
- **Data.gov**:发现美国政府开放数据集
## 前置条件
- **Node.js** (v16或更高)- [在此下载](https://nodejs.org/)
- **npm** (随Node.js附带)
- **API密钥** (见下文详细设置说明)
## 安装
### 步骤1:克隆仓库
```bash
git clone https://github.com/TCoder920x/open-legal-compliance-mcp.git
cd open-legal-compliance-mcp
```
### 步骤2:安装依赖
```bash
npm install
```
这将安装所有必需的包,包括:
- `@modelcontextprotocol/sdk` - MCP SDK
- `axios` - HTTP客户端
- `cheerio` - HTML解析
- `playwright` - 网页抓取
- `pdf-parse` - PDF解析
- 以及其他依赖
### 步骤3:构建项目
```bash
npm run build
```
这将编译TypeScript到JavaScript,位于`dist/`目录下。
## API密钥设置
以下API密钥根据您要使用的功能是必需或可选的:
### 必需API密钥
#### 1. GovInfo API密钥(必需)
**原因**:美国法典和联邦法规汇编搜索必需。没有此密钥,服务器将无法启动。
**获取步骤**:
1. 访问 [https://api.govinfo.gov/](https://api.govinfo.gov/)
2. 点击“注册”或“获取API密钥”
3. 填写注册表格(免费注册)
4. 验证您的电子邮件地址
5. 登录并导航到您的API密钥仪表板
6. 复制您的API密钥
**注册链接**: [https://api.govinfo.gov/](https://api.govinfo.gov/)
### 可选API密钥
#### 2. CourtListener API密钥(可选)
**原因**:启用美国案例法搜索。没有此密钥,案例法功能将不可用。
**获取步骤**:
1. 访问 [https://www.courtlistener.com/api/](https://www.courtlistener.com/api/)
2. 点击“注册API密钥”或“注册”
3. 创建免费账户(免费法律项目)
4. 注册后,进入您的账户设置
5. 导航到“API”部分
6. 生成或复制您的API令牌
**注册链接**: [https://www.courtlistener.com/api/](https://www.courtlistener.com/api/)
#### 3. Congress.gov API密钥(可选)
**原因**:启用搜索美国国会法案和立法。
**获取步骤**:
1. 访问 [https://api.congress.gov/](https://api.congress.gov/)
2. 点击“获取API密钥”或“注册”
3. 填写注册表格
4. 验证您的电子邮件
5. 登录并从仪表板访问您的API密钥
**注册链接**: [https://api.congress.gov/](https://api.congress.gov/)
#### 4. Open States API密钥(可选)
**原因**:启用搜索所有50个美国州的立法。
**获取步骤**:
1. 访问 [https://openstates.org/](https://openstates.org/)
2. 点击“获取API密钥”或导航到API文档
3. 注册免费账户
4. 从您的账户仪表板访问您的API密钥
**注册链接**: [https://openstates.org/](https://openstates.org/)
#### 5. CanLII API密钥(可选)
**原因**:启用搜索加拿大案例法。
**获取步骤**:
1. 访问 [https://www.canlii.org/en/api/](https://www.canlii.org/en/api/)
2. 查看API文档
3. 注册API访问(如果需要)
4. 从您的账户获取您的API密钥
**注册链接**: [https://www.canlii.org/en/api/](https://www.canlii.org/en/api/)
**注意**:一些服务如EUR-Lex、SEC EDGAR和英国立法不需要API密钥,无需注册即可使用。
## 配置
### 选项1:环境变量(推荐)
在项目根目录下创建`.env`文件:
```bash
touch .env
```
将您的API密钥添加到`.env`文件中:
```env
GOVINFO_API_KEY=您的govinfo密钥
COURTLISTENER_API_KEY=您的courtlistener密钥
CONGRESS_GOV_API_KEY=您的congress密钥
OPEN_STATES_API_KEY=您的openstates密钥
CANLII_API_KEY=您的canlii密钥
```
**重要**:`.env`文件已在`.gitignore`中,不会被提交到版本控制中。
### 2. MCP客户端配置(Cursor IDE / Claude Desktop)
如果您将此作为MCP服务器与Cursor IDE或Claude Desktop等客户端一起使用,则需要配置您的MCP客户端以指向此服务器。
**📖 查看完整的MCP设置指南**: [MCP_SETUP.md](MCP_SETUP.md)
**Cursor IDE快速启动**:
1. 找到您的绝对路径:
```bash
cd /path/to/open-legal-compliance-mcp
pwd
```
2. 编辑 `~/.cursor/mcp.json` 并添加:
```json
{
"mcpServers": {
"open-legal-compliance-mcp": {
"command": "node",
"args": [
"/绝对路径/step1/dist/index.js"
],
"env": {
"GOVINFO_API_KEY": "您的实际密钥",
"COURTLISTENER_API_KEY": "您的实际密钥",
"CONGRESS_GOV_API_KEY": "您的实际密钥",
"OPEN_STATES_API_KEY": "您的实际密钥",
"CANLII_API_KEY": "您的实际密钥"
}
}
}
}
```
3. 重启Cursor IDE
**有关Claude Desktop和详细故障排除**,请参见 [MCP_SETUP.md](MCP_SETUP.md)。
## 运行服务器
### 开发模式
在文件更改时自动重建:
```bash
npm run dev
```
### 生产模式
1. 构建项目(如果尚未构建):
```bash
npm run build
```
2. 启动服务器:
```bash
npm start
```
服务器将启动并通过stdio监听MCP协议消息。
## 用法
### 作为MCP服务器
此服务器设计用于与MCP兼容的客户端配合使用,例如:
- Claude Desktop
- Cursor IDE
- 其他MCP兼容应用程序
通过指向编译后的`dist/index.js`文件并提供必要的环境变量或配置,配置您的MCP客户端以使用此服务器。
### 可用工具
连接后,以下工具可用:
#### 联邦法律
- `search_us_code`:按查询和可选标题搜索美国法典
- `search_cfr`:搜索联邦法规汇编
- `search_federal_register`:搜索联邦公报文件
- `search_congress_bills`:搜索美国国会法案
#### 案例法
- `search_case_law`:通过CourtListener搜索美国案例法
- `search_canlii_cases`:通过CanLII搜索加拿大案例法
#### 州法律
- `search_state_law`:抓取特定州法规(CA、NY、IL)
- `search_open_states`:搜索所有50个州的立法
#### 国际法
- `search_eu_regulations`:搜索欧盟法规(EUR-Lex)
- `search_uk_legislation`:搜索英国立法
#### 监管与企业
- `get_sec_filings`:获取某公司的SEC文件
- `search_fda_events`:搜索FDA不良事件和执法报告
- `search_data_gov`:搜索Data.gov目录
## 项目结构
```
legal-compliance-mcp/
├── src/
│ ├── index.ts # 主要MCP服务器入口点
│ ├── services/ # 每个数据源的服务类
│ │ ├── GovInfoService.ts
│ │ ├── CourtListenerService.ts
│ │ ├── EURexService.ts
│ │ └── ...
│ └── utils/
│ └── httpClient.ts # 集中式HTTP客户端
├── dist/ # 编译后的JavaScript(生成)
├── mcp/
│ └── antigravity_config.json.example # 示例MCP配置
├── .env # 您的API密钥(不在git中)
├── package.json
├── tsconfig.json
└── README.md
```
## 故障排除
### 服务器无法启动
- **错误**:“GOVINFO_API_KEY环境变量是必需的”
- **解决方案**:确保您已在`.env`文件中设置了`GOVINFO_API_KEY`
### API请求失败
- **检查**:验证您的API密钥是否正确且未过期
- **检查**:某些API有速率限制 - 稍等片刻然后重试
- **检查**:确保您有互联网连接
### 构建错误
- **错误**:TypeScript编译错误
- **解决方案**:运行`npm install`确保所有依赖项都已安装
- **解决方案**:检查您是否正在使用Node.js v16或更高版本
### MCP客户端连接问题
- **检查**:验证您的MCP配置中`dist/index.js`的路径是否正确
- **检查**:确保项目已构建(`npm run build`)
- **检查**:验证您的MCP配置中是否设置了所有必需的环境变量
## 贡献
欢迎贡献!请随时提交拉取请求。
## 许可证
MIT许可证 - 有关详细信息,请参见[LICENSE](LICENSE)文件。
## 作者
TCoder920
## 支持
如有问题、疑问或贡献,请在[GitHub仓库](https://github.com/TCoder920x/open-legal-compliance-mcp)上开一个问题。