语料库管理工具

用于管理INCEpTION平台的语料库,支持上传、导出、监控和导入等自动化任务。

  • by RaphFaure
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 RaphFaure/inception-mcp

使用说明

初始mcp

一个包裹 开端的AERO v1 REST API,将语料库管理操作公开为MCP工具和CLI命令。

注释始终由INCEpTION界面内的人工注释器执行。 此包不进行注释:它处理语料库管理任务(上传、导出、监控、导入),这些任务可以自动化或委托给代理。

"Upload all .txt files in gutenberg/processed/ to project 1."
"Export annotations for document 42 by user admin in ctsv3 format to data/annot.tsv."

展示INCEpTION的AERO v1 REST API为:

  • MCP工具 --可从任何MCP兼容代理(Claude Code、Claude Desktop等)调用
  • 命令行界面 --独立终端接口,无需AI代理

两者共享相同的基础 InceptionClient.

用例

场景 如何
大规模上传语料库 批量上传数百个文档到一个项目
管道管理 链上传→ 监督进展→ 导出已完成的注释
进度监控 列出每个用户的所有文档及其注释状态
导出和后处理 导出ctsv3/XMI注释并将其导入解析脚本
多项目管理 无需离开终端即可创建、检查和归档项目

特性

功能 MCP服务器 CLI
列出/创建/删除项目 ✓ ✓
导出/导入项目ZIP(架构+文档+注释) ✓ ✓
项目进度状态 ✓ ✓
列出/上传/删除文档 ✓ ✓
批量上传文档文件夹 ✓ ✓
导出文档源 ✓ ✓
按用户列出注释 ✓ ✓
导出/导入注释(13种格式) ✓ ✓
导出项目的所有注释 ✓ ✓
按用户删除注释 ✓ ✓
导出/删除管理层 ✓ ✓

支持的导出格式: ctsv3, xmi, xmi-struct, conllu, conll2003, conll2006, conll2009, conll2012, text, tcf, jsoncas, jsoncas-struct, nif.


需求

  • Python≥3.10
  • 正在运行的INCEpTION实例(用INCEpTION 33+测试) 启用REST API时 (见下文)
  • uv (推荐)或 pip

启用INCEpTION REST API

在使用此软件包之前,必须启用AERO v1 REST API。请参阅 正式公司文件 以获取说明。

启用后,API可在 http://<host>:<port>/api/aero/v1Swagger用户界面可在以下网址获得:

http://<host>:<port>/swagger-ui.html

身份验证使用HTTP基本身份验证和您的INCEpTION凭据。


安装

紫外线(推荐)

git clone https://github.com/RaphFaure/inception-mcp
cd inception-mcp
uv sync

使用pip

git clone https://github.com/RaphFaure/inception-mcp
cd inception-mcp
pip install -e .

配置

连接参数从环境变量(或 .env 项目根目录下的文件):

变量 默认值 描述
INCEPTION_URL http://localhost:8080 INCEpTION实例的基本URL
INCEPTION_USER admin 用户名
INCEPTION_PASSWORD (空) 密码

创建一个 .env 文件:

cp .env.example .env
# then edit .env with your credentials

用法--MCP服务器

克劳德桌面版

将以下块添加到您的 ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "inception": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/inception-mcp", "inception-mcp"],
      "env": {
        "INCEPTION_URL": "http://localhost:8080",
        "INCEPTION_USER": "admin",
        "INCEPTION_PASSWORD": "your_password"
      }
    }
  }
}

重新启动克劳德桌面。INCEpTION工具将自动出现。

克劳德代码(Claude.ai/Code)

在下面添加相同的块 mcpServers 在您的项目中 .claude/settings.json 或在 ~/.claude/settings.json.

可用的MCP工具

项目

工具 说明
list_projects 列出所有可访问的项目
create_project(name, description?) 创建新项目
delete_project(project_id) ⚠️ 删除项目及其所有文档
export_project_zip(project_id, output_path) 将整个项目导出为ZIP
import_project_zip(zip_path) 从ZIP导入项目
project_status(project_id) 显示每个文档的注释进度

文件

工具 说明
list_documents(project_id) 列出项目中的文档
upload_document(project_id, file_path, fmt?) 上传单个文件
batch_upload(project_id, folder_path, fmt?, glob?) 上传文件夹中的所有文件
export_document_source(project_id, document_id, output_path, fmt?) 导出文档来源
delete_document(project_id, document_id) ⚠️ 删除文档

注释

工具 说明
list_annotations(project_id, document_id) 列出每个用户的注释
export_annotations(project_id, document_id, user, fmt?, output_path?) 导出注释
export_all_annotations(project_id, user, output_dir, fmt?) 导出项目中的所有文档
import_annotations(project_id, document_id, user, file_path, fmt?, state?) 导入注释
delete_annotations(project_id, document_id, user) ⚠️ 删除用户的注释

策展

工具 说明
export_curation(project_id, document_id, fmt?, output_path?) 导出策划的注释
delete_curation(project_id, document_id) ⚠️ 删除策划的注释

用法--CLI

# via uv
uv run inception-cli <command>

# or, if installed via pip
inception-cli <command>

全局选项

--url       URL INCEpTION  (overrides $INCEPTION_URL)
--user      Username        (overrides $INCEPTION_USER)
--password  Password        (overrides $INCEPTION_PASSWORD)

命令

# Projects
inception-cli list-projects
inception-cli create-project --name my_project
inception-cli status --project 1
inception-cli export-project --project 1 --out backup.zip
inception-cli import-project --zip backup.zip
inception-cli delete-project --project 1

# Documents
inception-cli list-documents --project 1
inception-cli upload --project 1 --file doc.txt --format text
inception-cli batch-upload --project 1 --folder ./texts --glob "*.txt"
inception-cli export-doc-source --project 1 --doc 42 --out source.txt
inception-cli delete-doc --project 1 --doc 42

# Annotations
inception-cli list-annotations --project 1 --doc 42
inception-cli export --project 1 --doc 42 --user admin --format ctsv3 --out annot.tsv
inception-cli export-all --project 1 --user admin --out-dir ./annotations
inception-cli import-annotations --project 1 --doc 42 --user admin --file annot.tsv
inception-cli delete-annotations --project 1 --doc 42 --user admin

# Curation
inception-cli export-curation --project 1 --doc 42 --format ctsv3 --out curation.tsv
inception-cli delete-curation --project 1 --doc 42

建筑

inception_mcp/
├── __init__.py      # Public exports: InceptionClient, InceptionError
├── client.py        # InceptionClient — HTTP layer over AERO v1 REST API
├── server.py        # FastMCP server — wraps client as MCP tools
└── cli.py           # argparse CLI — wraps client as shell commands
tests/
└── test_client.py   # Unit tests (22 tests, no INCEpTION instance required)

client.py 是所有API调用的唯一真相来源。添加新操作意味着只需执行一次 InceptionClient,然后将其暴露在 server.py (作为a @mcp.tool())和in cli.py (作为一个新的子命令)。

使用以下工具运行测试:

pip install pytest
pytest tests/

安全说明

破坏性行动是不可逆转的。 delete_project, delete_document, delete_annotations 和 delete_curation INCEpTION中没有撤消机制。在调用ID之前,始终验证它们。

服务器在本地运行,只能从启动它的计算机访问。 凭据是从环境变量中读取的,永远不要将其硬编码在文件中 致力于版本控制。这 .gitignore 在此存储库中不包括 .env.


INCEpTION API参考

完整的AERO v1 Swagger用户界面可在以下网址获得:

http://<your-inception-host>:<port>/swagger-ui.html

许可证

麻省理工学院 --只要保留原始版权声明,您就可以在任何项目中自由使用、修改和重新分发此软件,无论是否商业化。