Shanghai Library Open Data Mcp

io.github.FreyaBit由 GitHub 帳號 FreyaBit 發布v1.3.2更新於 Nov 3, 2026

上海图书馆开放数据检索 MCP:纪年/家谱/建筑/红色事件/99 个 webapi + 搜韵诗词,支持 stdio 与 HTTP。

概覽

AI 產生的概覽

把上海圖書館開放資料平台的 99 個 webapi 與 199 萬首搜韻詩詞包裝成 12 個 MCP 工具,供 AI 助理檢索與查證。

可以做什麼
  • 探索並呼叫上海圖書館開放資料介面,含通用分派器與任意路徑 GET 備援
  • 查詢中國歷史紀年表、家譜譜目、武康路歷史建築、紅色旅遊與歷史事件
  • 檢視資料集總覽與 SPARQL 說明
  • 依作者、標題、詩句、朝代、體裁、韻部檢索 199 萬首詩詞
  • 查詢韻典韻部與對仗詞彙,輔助詩詞創作
適用情境
適合需要上海圖書館中文文化資料(家譜、歷史建築、紀年換算、地方歷史)或古典詩詞與韻典參考的情境,免去手寫介面呼叫。
執行需求
以 stdio 在本機執行,僅用 Python 標準函式庫、無第三方相依套件,也可透過 PyPI 的 uvx 啟動;另有選用的 Streamable HTTP 模式。多數工具需在上海圖書館開放資料平台免費註冊取得 APIKey,透過環境變數 SLC_API_KEY 或工具參數 key 傳入。需能連線至該平台。
安裝前請注意
12 個工具中有 8 個需要自備 APIKey;Key 可作為工具參數傳入,可能出現在對話或日誌中。不要把 Key 設定在公開可存取的 HTTP 服務環境變數裡,否則等於對所有呼叫者公開。查詢內容會傳送到上海圖書館平台與搜韻詩詞服務。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Shanghai Library Open Data Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

上海图书馆开放数据 MCP

[smithery badge]

把上海图书馆开放数据平台的 99 个 webapi 接口 + 搜韵诗词库(199 万首,免 token)封装成 12 个 MCP 工具,可接入 WorkBuddy、Cursor、Claude Desktop 等任意 MCP 客户端。

这是啥? 一个把「上海图书馆开放数据」接进 AI 助手的桥。装好之后,你直接在 AI 工具里说"查武康路的历史建筑""找首写月亮的诗",AI 就会自动去上海图书馆的数据里查,再把结果讲给你听——不用懂接口、不用写代码。

你要准备什么? 两样:① 去上海图书馆开放数据平台免费注册,拿一把"钥匙"(APIKey);② 按下面的「快速开始」把项目接进你常用的 AI 编辑器(Cursor、Claude Desktop、VS Code、WorkBuddy 等都能用)。

为什么安全? 项目代码里不含任何钥匙,钥匙只在你自己的电脑 / 配置里,不会被别人看到。


数据源与致谢

  • 上海图书馆开放数据平台(官方):https://opendata.library.sh.cn/opendata/ 衷心感谢上海图书馆官方开放数据平台提供权威、丰富且持续维护的历史文献与文脉数据接口。本项目的全部核心数据能力(99 个 webapi)均建立在上海图书馆开放数据之上,若无官方的开放与授权,本项目无从实现。
  • 搜韵诗词:https://api.sou-yun.cn/open (199 万首诗词,免 token)
  • 本仓库接口版权归各数据方所有,使用请遵守各平台开放数据的使用条款;调用方须使用自己在平台注册的 APIKey,本仓库不内置、不收集任何密钥。
  • 本项目已发布至 PyPI、MCP 官方 Registry(io.github.FreyaBit/shanghai-library-open-data-mcp)、Smithery、ModelScope 与 GitHub,便于各 MCP 客户端一键接入。

特性

  • 🧩 12 个 MCP 工具:覆盖家谱 / 古籍 / 碑帖 / 武康路 / 书目 / 地名志 / 红色事件 / 纪年表 / 电影 / 舆图 / 手迹 / 人名库 / 戏单等 99 个官方接口 + 搜韵诗词
  • 🔑 密钥由使用者提供:通过环境变量 SLC_API_KEY 或工具参数 key 传入,代码不内置任何密钥
  • 🐍 零第三方依赖:仅用 Python 标准库(urllib + json),无需 pip install
  • 🎵 AIGC 歌词素材:souyun_poem 免 token 检索 199 万首诗词(按作者/标题/诗句/朝代/体裁/韵部),souyun_rhyme / souyun_couplet 提供韵典和对仗词汇
  • 📚 RAG 骨架:rag_kb.py 纯标准库 TF-IDF 知识库,可离线灌入官方 ZIP 数据

工具总览

工具说明需要 Key
slc_endpoints列出全部 99 个接口(id/家族/路径/参数),发现能力❌
slc_api通用分发器:调用任意 webapi 接口✅
slc_era中国历史纪年表:朝代/年号 ↔ 公元年✅
slc_jiapu家谱谱目检索✅
slc_building武康路历史建筑检索✅
slc_red_event红色旅游/历史事件检索✅
slc_raw任意 data1 路径 GET 兜底调用✅
slc_datasets / slc_sparql数据集总览 / SPARQL 说明❌
souyun_poem搜韵诗词检索(199 万首,免 token)❌
souyun_rhyme韵典:查字所属韵部、典故、诗例❌
souyun_couplet对仗词汇❌

接口家族:近代城市文化(20)、古籍循证(15)、国漫革命文献(7)、武康路历史(7)、纪年表关联数据(5)、韬奋纪念馆(4)、书目数据(4)、家谱(4)、地名纪年(4)、竞赛PDF文献(3)、知识图谱人物(2)、文化总库机构(2)、舆图(2)、手迹(2)、红色旅游事件(2)、地名志(2)、纪年(2)、人名规范库(1)、机构名录(1)、戏单(2)、其他(8)。

快速开始

本地 stdio 接入

bash
# 1. 克隆仓库git clone https://github.com/FreyaBit/OpenSH-mcp.gitcd OpenSH-mcp
# 2. 设置你的 APIKey(在上海图书馆开放数据平台获取)export SLC_API_KEY='你的上图书APIKey'    # macOS/Linux# $env:SLC_API_KEY='你的上图书APIKey'    # Windows PowerShell
# 3. 运行端到端自测python3 tests/test_stdio.py

在你的 MCP 客户端里配置 stdio 服务:

json
{  "mcpServers": {    "上海图书馆开放数据": {      "command": "python3",      "args": ["/绝对路径/slc_mcp_server.py"],      "env": { "SLC_API_KEY": "你的上图书APIKey" }    }  }}

通过 PyPI / uvx 安装(推荐,跨客户端通用)

发布到 PyPI 后,任意支持 MCP 的客户端都能用一条命令拉起,无需克隆仓库:

bash
uvx shanghai-library-open-data-mcp              # 本地 stdio(默认)uvx shanghai-library-open-data-mcp --transport http --port 8080      # Streamable HTTP 远程(进阶可选)

客户端配置只需:command: uvx, args: ["shanghai-library-open-data-mcp"]。

Streamable HTTP 传输(进阶,可选)

除 stdio 外,本服务原生支持 Streamable HTTP(slc_mcp_http.py,纯标准库实现):

  • POST /mcp 处理 JSON-RPC(initialize 时签发 Mcp-Session-Id,通知类返回 202)
  • GET /mcp 提供 SSE 流
  • 已开启 CORS,便于网页端 / 远程网络调用

适合网页版 AI、手机端,或多人共用同一服务;需自行把服务跑在可访问的地址上。个人在编辑器本地使用,stdio 已足够,无需此模式。

客户端配置示例

三种客户端本质都是同一段 mcpServers JSON,区别只在配置文件路径。下面的示例用 uvx 拉起(免克隆仓库);想用本地脚本,把 command/args 换成 ["python3","/绝对路径/slc_mcp_server.py"] 即可。

WorkBuddy(本机已配置过一份) 配置文件:~/.workbuddy/mcp.json。本机已存在一份指向本地脚本 + Key 的配置,只需在连接器管理界面对「上海图书馆开放数据」点击 信任 即可在本会话启用;也可替换成下面的 uvx 写法。

json
{  "mcpServers": {    "上海图书馆开放数据": {      "command": "uvx",      "args": ["shanghai-library-open-data-mcp"],      "env": { "SLC_API_KEY": "你的上图书APIKey" }    }  }}

Cursor 配置文件:项目根目录 .cursor/mcp.json 或全局 ~/.cursor/mcp.json(同一段 JSON)。

Claude Desktop / Claude Code

  • Claude Desktop:把上面的 mcpServers 合并进 %APPDATA%\Claude\claude_desktop_config.json(Windows)或 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)。
  • Claude Code 命令行:claude mcp add 上海图书馆开放数据 -- uvx shanghai-library-open-data-mcp

说明:12 个工具里 souyun_poem / souyun_rhyme / souyun_couplet / slc_endpoints 免 Key 开箱即用,其余 8 个需要 SLC_API_KEY。已发布到 PyPI、MCP 官方 Registry(io.github.FreyaBit/shanghai-library-open-data-mcp)、Smithery、ModelScope、GitHub,均可一键拉起。

APIKey 说明

  • 上海图书馆开放数据平台要求每个调用者使用自己的 APIKey(在平台注册后获取)。
  • 本仓库不包含任何 Key,也不记录、不收集你的 Key。
  • Key 读取优先级:工具参数 key > 环境变量 SLC_API_KEY。
  • 调用需要 Key 的工具时,把 Key 放在工具参数里:
json
{ "endpoint": "building_list", "params": { "freetext": "武康路" }, "key": "你的上图书APIKey" }
  • 免 Key 工具(souyun_poem / souyun_rhyme / souyun_couplet / slc_endpoints)开箱即用。
  • ⚠️ 请勿把你的 Key 配置到公开服务的环境变量里(等于公开给所有调用者)。

目录结构

OpenSH-mcp/├── README.md                 # 本文件├── pyproject.toml            # PyPI 打包配置(uvx 入口)├── slc_mcp_server.py         # MCP 服务主程序(stdio,纯标准库)├── slc_mcp_http.py           # Streamable HTTP 传输层(纯标准库,进阶可选)├── slc_endpoints.py          # 99 个 webapi 接口注册表(自动生成)├── gen_endpoints.py          # 接口注册表生成器(从官方 API 文档解析)├── souyun_poem.py            # 搜韵诗词/韵典/对仗采集(免 token)├── rag_kb.py                 # RAG 知识库骨架(纯标准库 TF-IDF)├── mcp.json.template         # MCP 客户端配置模板(不含 Key)└── tests/                    # 测试(从环境变量读 Key,缺失会提示)    ├── test_stdio.py         #   stdio 端到端(协议 + 真实调用)    ├── test_live.py          #   handler 级实测(GET/POST/搜韵)    └── test_mcp.py           #   协议冒烟测试

來源:README.md,提交 707f4fb

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.3.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分