# Bunduk MCP — Chinese History Study Server
MCP server exposing BiogRef/TextRef CSVs as resources and tools for Chinese history study, with optional live CBDB and CHGIS TGAZ enrichments.
## Quick Start
- Requirements: Python 3.10+
- Data: CSVs are expected under `references/` (already present in this repo).
Install (editable):
```
pip install -e .
```
Run (stdio transport):
```
mcp-chinese-history
```
or
```
python -m bunduk_mcp.server
```
This starts an MCP stdio server suitable for MCP-compatible clients.
## Implemented
- Resources: `biogref://{source}/person/{person_id}`, `textref://{source}/work/{primary_id}`
- Tools: person.search, person.get, crosswalk.person, text.search
- Entity resolution: entity.resolve_people, entity.resolve_books
- Place lookup (TGAZ): place.lookup (online; safe fallback if offline)
- CBDB API thin wrapper: cbdb.person (online; safe fallback if offline)
- Disambiguation: disambig.person (rule-based scoring)
- HTML builder: html.build_annotations (deterministic wrapping with tooltips)
- Dataset management (scaffold): dataset.list, dataset.reload (update/sync stubbed)
## Configuration
- `BUNDUK_MCP_REFERENCES_DIR` — override path to CSVs (default: `references`)
- `BUNDUK_HTTP_TIMEOUT` — HTTP timeout seconds (default: 10)
## Notes
- Network-enriched tools return clear errors when offline; the rest work fully offline using local CSV files.
- CSV BOM is handled; fields are normalized but values preserve Chinese text.
- See `MCP_PLAN.md` for design, scenarios, and roadmap.
Raw data
{
"_id": null,
"home_page": null,
"name": "bunduk-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "mcp, chinese-history, cbdb, chgis, biographical-data, textual-references",
"author": null,
"author_email": "KL Tang <contact@kltang.net>",
"download_url": null,
"platform": null,
"description": "# Bunduk MCP \u2014 Chinese History Study Server\n\nMCP server exposing BiogRef/TextRef CSVs as resources and tools for Chinese history study, with optional live CBDB and CHGIS TGAZ enrichments.\n\n## Quick Start\n\n- Requirements: Python 3.10+\n- Data: CSVs are expected under `references/` (already present in this repo).\n\nInstall (editable):\n\n```\npip install -e .\n```\n\nRun (stdio transport):\n\n```\nmcp-chinese-history\n```\n\nor\n\n```\npython -m bunduk_mcp.server\n```\n\nThis starts an MCP stdio server suitable for MCP-compatible clients.\n\n## Implemented\n\n- Resources: `biogref://{source}/person/{person_id}`, `textref://{source}/work/{primary_id}`\n- Tools: person.search, person.get, crosswalk.person, text.search\n- Entity resolution: entity.resolve_people, entity.resolve_books\n- Place lookup (TGAZ): place.lookup (online; safe fallback if offline)\n- CBDB API thin wrapper: cbdb.person (online; safe fallback if offline)\n- Disambiguation: disambig.person (rule-based scoring)\n- HTML builder: html.build_annotations (deterministic wrapping with tooltips)\n- Dataset management (scaffold): dataset.list, dataset.reload (update/sync stubbed)\n\n## Configuration\n\n- `BUNDUK_MCP_REFERENCES_DIR` \u2014 override path to CSVs (default: `references`)\n- `BUNDUK_HTTP_TIMEOUT` \u2014 HTTP timeout seconds (default: 10)\n\n## Notes\n\n- Network-enriched tools return clear errors when offline; the rest work fully offline using local CSV files.\n- CSV BOM is handled; fields are normalized but values preserve Chinese text.\n- See `MCP_PLAN.md` for design, scenarios, and roadmap.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "MCP server for Chinese history study: BiogRef/TextRef CSVs, CBDB/TGAZ enrichments",
"version": "0.1.4",
"project_urls": {
"Bug Tracker": "https://github.com/yourusername/bunduk-mcp/issues",
"Documentation": "https://github.com/yourusername/bunduk-mcp#readme",
"Homepage": "https://github.com/yourusername/bunduk-mcp",
"Repository": "https://github.com/yourusername/bunduk-mcp"
},
"split_keywords": [
"mcp",
" chinese-history",
" cbdb",
" chgis",
" biographical-data",
" textual-references"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6b43d11ed00c4d4884f17611f44876ffb7fe4281d604479324513c40bb4d6677",
"md5": "27427a32cee74fd7da084b8ad29688e9",
"sha256": "0bd9aa146e118f9d0e365bfd76fb2e05d4086ffb1f66ce5463fec542dbbf7a17"
},
"downloads": -1,
"filename": "bunduk_mcp-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "27427a32cee74fd7da084b8ad29688e9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 18606,
"upload_time": "2025-11-03T05:16:14",
"upload_time_iso_8601": "2025-11-03T05:16:14.785751Z",
"url": "https://files.pythonhosted.org/packages/6b/43/d11ed00c4d4884f17611f44876ffb7fe4281d604479324513c40bb4d6677/bunduk_mcp-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-03 05:16:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "bunduk-mcp",
"github_not_found": true,
"lcname": "bunduk-mcp"
}