内容
# 新西兰立法工具
[](https://www.npmjs.com/package/nz-legislation-tool)
[](https://www.npmjs.com/package/nz-legislation-tool)
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.typescriptlang.org/)
[](https://github.com/edithatogo/nz-legislation/actions/workflows/ci.yml)
[](https://github.com/edithatogo/nz-legislation/graphs/commit-activity)
**在几秒钟内搜索、检索和引用新西兰立法。**
一个为研究人员、法律专业人士和任何与新西兰立法相关工作的人提供的快速、友好的命令行工具。让你的研究更快完成,减少复制和粘贴。
**软件包链接:** [npm 软件包](https://www.npmjs.com/package/nz-legislation-tool) · [GitHub 仓库](https://github.com/edithatogo/nz-legislation)
---
## 📦 软件包注册
- **主要 npm 软件包:** [`nz-legislation-tool`](https://www.npmjs.com/package/nz-legislation-tool)
- **GitHub Packages 镜像:** `@edithatogo/nz-legislation-tool`
GitHub 仓库的“软件包”区域通过 GitHub Packages 发布填充,而不是通过公共 npmjs.com 列表填充。此仓库包含一个工作流,以发布作用域的 GitHub Packages 镜像,以便仓库也可以在那里显示软件包条目。
---
## 🚪 选择您的界面
### 命令行界面
如果您想要直接的终端访问来进行搜索、检索、导出和引用,请使用命令行界面。
```bash
npm install -g nz-legislation-tool
nzlegislation search --query "health act"
```
### MCP 服务器
如果您想要将工具连接到 AI 助手或工具调用环境,请使用 MCP 服务器。
```bash
npm install -g nz-legislation-tool
nzlegislation-mcp
```
MCP 命令配置示例:
```json
{
"command": "nzlegislation-mcp",
"env": {
"NZ_LEGISLATION_API_KEY": "your-api-key"
}
}
```
---
## ✨ 您可以使用
- 🔍 **搜索** - 按关键词、类型、状态或日期范围查找立法
- 📄 **检索** - 按 ID 获取完整详细信息和版本历史
- 📤 **导出** - 下载到 CSV 或 JSON 进行分析
- 📚 **引用** - 以 NZMJ、BibTeX、RIS 或 APA 样式生成引用
- 🤖 **AI 集成** - 连接到 AI 助手进行自动化研究
- 🎨 **漂亮的输出** - 清洁的表格、格式化的 JSON、可以直接使用的 CSV
- 🔒 **安全** - 您的 API 密钥在您的机器上保持安全
- 📊 **研究就绪** - 可复制的导出,包含完整的元数据
- 🧪 **经过实战测试** - 43+ 个自动化测试在您之前捕获问题
---
## 🚀 快速入门(5 分钟)
### 步骤 1:获取您的 API 密钥(2 分钟)
1. 访问 [https://api.legislation.govt.nz/docs/](https://api.legislation.govt.nz/docs/)
2. 注册一个免费的 API 密钥
3. 从您的电子邮件中复制密钥
### 步骤 2:安装工具(1 分钟)
**选项 A:尝试不安装(推荐首次使用)**
```bash
npx -y --package nz-legislation-tool nzlegislation search --query "health"
```
**选项 B:全局安装(推荐常规使用)**
```bash
npm install -g nz-legislation-tool
```
### 步骤 3:设置您的 API 密钥(1 分钟)
```bash
nzlegislation config --key YOUR_API_KEY_HERE
```
### 步骤 4:您的第一次搜索(30 秒)
```bash
nzlegislation search --query "health act"
```
**您应该看到:
```
┌────────────────────┬──────────────────────────────────────────┬────────┬──────────┬────────────┐
│ ID │ Title │ Type │ Status │ Date │
├────────────────────┼──────────────────────────────────────────┼────────┼──────────┼────────────┤
│ act/2020/67 │ Health Act 2020 │ act │ in-force │ 2020-11-15 │
│ act/1956/65 │ Health Act 1956 │ act │ repealed │ 1956-10-01 │
└────────────────────┴──────────────────────────────────────────┴────────┴──────────┴────────────┘
Total: 42 results (showing 25)
```
🎉 **就这样!您已经准备好了。**
---
## 📋 您需要
- **Node.js** 18.0 或更高版本([在此下载](https://nodejs.org/))
- **新西兰立法 API 密钥**(免费 - [获取您的密钥](https://api.legislation.govt.nz/docs/))
---
## 📖 命令(带示例)
### `search` - 查找立法
搜索整个新西兰立法数据库。
```bash
# 基本搜索
nzlegislation search --query "health"
# 按类型过滤(act, bill, regulation, instrument)
nzlegislation search --query "health" --type act
# 按状态过滤(in-force, repealed, etc.)
nzlegislation search --query "mental health" --status in-force
# 按日期范围搜索
nzlegislation search --query "health" --from 2020-01-01 --to 2024-12-31
# 导出结果到 CSV
nzlegislation search --query "health" --format csv --output results.csv
```
**所有选项:
| 选项 | 简写 | 描述 | 默认值 |
| --- | --- | --- | --- |
| `--query` | `-q` | 搜索查询(必填) | - |
| `--type` | `-t` | 过滤:act, bill, regulation, instrument | - |
| `--status` | `-s` | 过滤:in-force, repealed, etc. | - |
| `--from` | - | 从日期(YYYY-MM-DD) | - |
| `--to` | - | 到日期(YYYY-MM-DD) | - |
| `--limit` | `-l` | 最大结果(1-100) | `25` |
| `--offset` | `-o` | 用于分页 | `0` |
| `--format` | `-f` | 输出:table, json, csv | `table` |
👉 **专业提示:** 使用引号进行多词搜索:`"Mental Health Act"`
---
### `get` - 查看特定立法
获取特定法案或法规的完整详细信息。
```bash
# 按 ID 获取详细信息
nzlegislation get "act/2020/67"
# 包括版本历史
nzlegislation get "act/2020/67" --versions
# 输出为 JSON
nzlegislation get "act/2020/67" --format json
```
**我在哪里找到 ID?**
首先运行搜索,然后从结果中复制 ID:
```bash
nzlegislation search --query "health act"
# 从结果中复制 "act/2020/67"
```
---
### `export` - 下载结果到文件
适用于 Excel、R 或 Python 中的分析。
```bash
# 导出到 CSV(最常见)
nzlegislation export --query "health" --output health.csv
# 导出到 JSON(适用于开发人员)
nzlegislation export --query "health" --format json --output health.json
# 过滤导出(例如,仅限活跃的法案)
nzlegislation export --query "mental health" --type act --status in-force --output mental_health_acts.csv
# 包括元数据以确保可复制性
nzlegislation export --query "health" --output health.csv --include-metadata
```
**所有选项:
| 选项 | 简写 | 描述 | 默认值 |
| --- | --- | --- | --- |
| `--query` | `-q` | 搜索查询(必填) | - |
| `--output` | `-o` | 输出文件路径(必填) | - |
| `--format` | `-f` | 输出:csv, json | `csv` |
| `--type` | `-t` | 按类型过滤 | - |
| `--status` | `-s` | 按状态过滤 | - |
| `--from` | - | 从日期 | - |
| `--to` | - | 到日期 | - |
| `--limit` | `-l` | 最大结果 | `100` |
| `--include-metadata` | - | 添加导出元数据 | `false` |
---
### `cite` - 生成引用
为论文、论文或报告创建引用。
```bash
# NZMJ 样式(默认 - 适用于新西兰医学杂志)
nzlegislation cite "act/2020/67"
# BibTeX(适用于 LaTeX 论文)
nzlegislation cite "act/2020/67" --style bibtex
# RIS(适用于 EndNote, Mendeley, Zotero)
nzlegislation cite "act/2020/67" --style ris
# APA 样式
nzlegislation cite "act/2020/67" --style apa
```
**建立参考文献:
```bash
# 将多个引用附加到 .bib 文件
nzlegislation cite "act/1981/118" --style bibtex >> references.bib
nzlegislation cite "act/2020/67" --style bibtex >> references.bib
```
---
### `config` - 管理设置
查看和更新您的配置。
```bash
# 显示当前设置
nzlegislation config --show
# 更新 API 密钥
nzlegislation config --key YOUR_NEW_KEY
# 清除所有设置(重新开始)
nzlegislation config --clear
```
---
## 🎯 现实示例
### 示例 1:研究人员雷切尔的工作流程
雷切尔正在撰写一篇关于卫生政策改革的论文。
```bash
# 1. 查找所有活跃的卫生法案
nzlegislation search --query "health" --type act --status in-force
# 2. 导出到 Excel 进行分析
nzlegislation export --query "health" --type act --output health_acts.csv
# 3. 获取特定法案的详细信息
nzlegislation get "act/2020/67"
# 4. 为她的论文生成引用
nzlegislation cite "act/2020/67" --style nzmj
```
### 示例 2:开发者丹的集成
丹正在构建一个研究仪表板。
```bash
# 以 JSON 格式获取数据以供应用程序使用
nzlegislation search --query "health" --format json --limit 100
# 在 Node.js 中解析:
const results = JSON.parse(output);
console.log(`Found ${results.total} results`);
```
### 示例 3:学生萨姆的作业
萨姆需要一些立法来完成课程论文。
```bash
# 搜索心理健康法案
nzlegislation search --query "Mental Health Act" --type act
# 获取完整详细信息
nzlegislation get "act/1992/100"
# 为参考文献生成 APA 引用
nzlegislation cite "act/1992/100" --style apa
```
### 示例 4:管理员亚历克斯的团队设置
亚历克斯正在为一个研究团队部署。
```bash
# 在共享服务器上安装
npm install -g nz-legislation-tool
# 为团队配置 API 密钥
nzlegislation config --key $TEAM_API_KEY
# 测试是否有效
nzlegislation search --query "test" --limit 1
# 设置监控(检查速率限制)
nzlegislation config --show
```
---
## 🎨 输出格式
### 表格格式(默认)
在终端中显示漂亮、易读的表格:
```
┌────────────────────┬──────────────────────────────────────────┬────────┬──────────┬────────────┐
│ ID │ Title │ Type │ Status │ Date │
├────────────────────┼──────────────────────────────────────────┼────────┼──────────┼────────────┤
│ act/2020/67 │ Health Act 2020 │ act │ in-force │ 2020-11-15 │
│ act/1956/65 │ Health Act 1956 │ act │ repealed │ 1956-10-01 │
└────────────────────┴──────────────────────────────────────────┴────────┴──────────┴────────────┘
```
### JSON 格式
适用于开发人员和自动化:
```json
{
"total": 42,
"offset": 0,
"limit": 25,
"results": [
{
"id": "act/2020/67",
"title": "Health Act 2020",
"type": "act",
"status": "in-force",
"date": "2020-11-15"
}
]
}
```
### CSV 格式
适用于 Excel、R、Python 或 SPSS:
```csv
id,title,shortTitle,type,status,date,url,versionCount
act/2020/67,Health Act 2020,Health Act 2020,act,in-force,2020-11-15,https://api.legislation.govt.nz/v0/works/act/2020/67,5
```
---
## ⚠️ 速率限制
新西兰立法 API 有公平使用限制:
| 限制 | 值 | 重置 |
| --- | --- | --- |
| **每日** | 10,000 请求 | 当地时间午夜 |
| **突发** | 每 5 分钟 2,000 请求 | 滚动窗口 |
**不用担心** - 命令行界面自动处理速率限制。如果您达到限制,您将看到一条友好消息,告诉您何时重试。
---
## 🐛 故障排除
### “API 密钥未配置”
**快速修复:
```bash
nzlegislation config --key YOUR_API_KEY
```
**仍然无法正常工作?** 检查是否设置正确:
```bash
nzlegislation config --show
```
---
### “身份验证失败”
**常见原因:
- API 密钥中存在拼写错误
- API 密钥已过期
- 复制的密钥错误
**修复:**
1. 检查电子邮件以获取原始 API 密钥
2. 重新运行:`nzlegislation config --key YOUR_KEY`
3. 测试:`nzlegislation search --query "test"`
---
### “速率限制已超过”
**发生了什么:** 您过快地提出了太多请求。
**修复:**
- 等待 5 分钟让突发限制重置
- 或等待午夜让每日限制重置
**预防:**
- 在批量请求之间添加暂停
- 使用 `--limit` 减少批量大小
---
### “未找到资源”
**常见原因:
- 错误的 ID 格式(应为 `act/2020/67`)
- 立法不存在
**修复:**
1. 首先搜索以查找正确的 ID:
```bash
nzlegislation search --query "health"
```
2. 从结果中复制确切的 ID
3. 使用正确的 ID 再次尝试
---
### “网络错误”或“超时”
**发生了什么:** 无法连接到 API。
**修复:**
1. 检查您的互联网连接
2. 直接尝试 API 网站:https://api.legislation.govt.nz
3. 如果 API 宕机,请等待并稍后重试
**仍然卡住?** 查看 [API 状态](https://api.legislation.govt.nz/) 或 [联系支持](#support)。
---
## 📦 安装选项
### 选项 1:npm(推荐用于常规使用)
```bash
npm install -g nz-legislation-tool
```
**优点:** 无处不在,无需输入 `npx`
**缺点:** 占用磁盘空间(~50MB)
---
### 选项 2:npx(尝试后再安装)
```bash
npx -y --package nz-legislation-tool nzlegislation search --query "health"
```
**优点:** 无需安装,即可尝试
**缺点:** 较慢(每次下载),需要输入 `npx`
---
### 选项 3:从源代码(适用于贡献者)
```bash
git clone https://github.com/edithatogo/nz-legislation-tool
cd nz-legislation-tool
npm install
npm run build
npm link # 全局安装
```
**优点:** 最新功能,可以贡献更改
**缺点:** 需要构建步骤,适用于高级用户
---
## 🤝 贡献
我们欢迎您的帮助!本项目是开源的,欢迎所有人贡献。
**贡献方式:
- 🐛 报告错误
- 💡 建议功能
- 📝 改进文档
- 💻 提交代码修复
参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解如何开始。
### 快速开发设置
```bash
# 克隆仓库
git clone https://github.com/edithatogo/nz-legislation-tool
cd nz-legislation-tool
# 安装依赖
npm install
# 在开发模式下运行
npm run dev -- search --query "health"
# 运行测试
npm test
```
---
## 📚 文档
需要更多帮助?查看这些指南:
- **[用户指南](docs/user-guide/index.md)** - 详细的命令参考
- **[常见问题](docs/user-guide/faq.md)** - 常见问题解答
- **[故障排除](docs/user-guide/troubleshooting.md)** - 分步修复
- **[开发者指南](docs/developer-guide/index.md)** - 适用于贡献者
- **[API 参考](docs/developer-guide/api-reference.md)** - 技术细节
---
## 🤖 自动化与维护
该仓库通过最小的人工干预自行运行:
| 自动化 | 频率 | 执行操作 |
| --- | --- | --- |
| 🔒 **安全审计** | 每周 | 扫描漏洞 |
| ✨ **代码质量** | 每次提交 | linting, 类型检查 |
| 📦 **依赖更新** | 每周 | 自动更新安全软件包 |
| 🧪 **测试** | 每次提交 | 43+ 个自动化测试 |
| ⚡ **基准测试** | 每周 | 性能跟踪 |
| 🗑️ **过时清理** | 每天 | 关闭不活动的问题 |
**手动维护:** ~0 小时/月 ✅
参阅 [MAINTENANCE_GUIDE.md](MAINTENANCE_GUIDE.md) 获取详细信息。
---
## 🙏 致谢
- **新西兰立法 API 团队** (议会法律办公室) 提供 API
- **惠灵顿维多利亚大学** 提供研究支持
- **所有贡献者** 让这个项目变得更好
---
## 📬 支持
需要帮助?我们在这里为您提供帮助。
- 🐛 **发现错误?** [打开问题](https://github.com/edithatogo/nz-legislation-tool/issues)
- 💬 **有问题?** [开始讨论](https://github.com/edithatogo/nz-legislation-tool/discussions)
- 📧 **电子邮件:** dylan.mordaunt@vuw.ac.nz
- 📖 **API 文档:** https://api.legislation.govt.nz/docs/
**响应时间:** 我们旨在 2 个工作日内回复。
---
## 📄 许可证
Apache License 2.0 - 参见 [LICENSE](LICENSE) 获取详细信息。
**TL;DR:** 免费使用、修改和分发。只需注明来源,不要追究我们的责任。
---
<div align="center">
**由新西兰研究人员为研究人员打造,充满爱 ❤️。**
[npm](https://www.npmjs.com/package/nz-legislation-tool) ·
[GitHub](https://github.com/edithatogo/nz-legislation) ·
[API 文档](https://api.legislation.govt.nz/docs/) ·
[文档](docs/user-guide/index.md)
</div>
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器