# io.github.FreyaBit/shanghai-library-open-data-mcp (pypi · shanghai-library-open-data-mcp)

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

- Trust score: 73/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-16

## Components

- pypi · `shanghai-library-open-data-mcp`: 73/100 (this document), [markdown](https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp.md), [page](https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp)

## Channel facts

- Registry: `pypi`
- Package: `shanghai-library-open-data-mcp`
- Version: `1.3.2`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-16.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 8 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1581 tokens (~131/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add freyabit-shanghai-library-open-data-mcp -- uvx shanghai-library-open-data-mcp
```

### Codex

```bash
codex mcp add freyabit-shanghai-library-open-data-mcp -- uvx shanghai-library-open-data-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "freyabit-shanghai-library-open-data-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "shanghai-library-open-data-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add freyabit-shanghai-library-open-data-mcp --command uvx --arg shanghai-library-open-data-mcp
```

### Hermes

```yaml
mcp_servers:
  freyabit-shanghai-library-open-data-mcp:
    command: "uvx"
    args: ["shanghai-library-open-data-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "freyabit-shanghai-library-open-data-mcp": {
      "command": "uvx",
      "args": [
        "shanghai-library-open-data-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-16 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-15 (score 72, +3)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-13 (score 69, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-08-12 (score 54, −15)

- [security regression] Malware scan: pass → unverified
- [functional regression] Security disclosure: unverified → fail

### 2026-08-11 (score 69, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-08 (score 68)

First indexed and scored.

## MCP tools (12)

### `slc_era` (~110 tokens)

中国历史纪年表：输入朝代/年号返回公元年范围，或反之。例：明 -> 1368~1644。需传入 key（你自己的上海图书馆开放数据 APIKey）。

Input parameters:

- `key` (string): 上海图书馆开放数据 APIKey（必填，也可走环境变量 SLC_API_KEY）
- `term` (string, required): 朝代/年号/公元年，如 明、洪武、1369

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `slc_jiapu` (~87 tokens)

家谱谱目检索（data1 平台）：可按谱名或姓氏检索家谱。需传入 key。

Input parameters:

- `familyname` (string): 姓氏，如 王
- `key` (string): 上海图书馆开放数据 APIKey（必填）
- `title` (string): 谱名关键词，如 王氏家谱

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `slc_building` (~72 tokens)

武康路历史建筑检索（已验证可用）：按路名/建筑关键词检索。需传入 key。

Input parameters:

- `key` (string): 上海图书馆开放数据 APIKey（必填）
- `keyword` (string, required): 路名/建筑关键词，如 武康路

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `slc_red_event` (~84 tokens)

红色旅游/历史事件检索：按关键词或年份检索。需传入 key。

Input parameters:

- `date` (string): 年份，如 1940（与 keyword 二选一）
- `key` (string): 上海图书馆开放数据 APIKey（必填）
- `keyword` (string): 事件关键词，如 中共一大会址

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `slc_api` (~219 tokens)

通用分发器：调用 api_2025 注册的全部 webapi 接口（家谱/古籍/盛档/人名库/碑帖/电影/期刊/舆图/书目/地名志/武康路 等 99 个）。endpoint 填接口 id；params 填查询参数(JSON)；path_args 填路径占位 {0}{1}；key 填你自己的上海图书馆开放数据 APIKey（必填）。先用 slc_endpoints 查 id。

Input parameters:

- `endpoint` (string, required): 接口 id 或 家族名（取该家族首个接口），如 work_data / 武康路历史
- `key` (string): 上海图书馆开放数据 APIKey（必填）
- `params` (object): 查询参数（JSON 对象），如 {'freetext':'江南','pageNum':1}
- `path_args` (array): 路径占位 {0}{1} 的取值列表

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `slc_endpoints` (~64 tokens)

列出全部可用 webapi 接口（id/家族/路径/参数），可按 family 过滤。用于发现能力。

Input parameters:

- `family` (string): 可选：按家族过滤，如 古籍循证 / 武康路历史

Output parameters:

- `count` (integer): 可用接口数量
- `endpoints` (array)

### `slc_datasets` (~52 tokens)

数据集与第三方机构总览：上海图书馆核心平台、搜韵诗词、韬奋纪念馆、Artlib、CBDB、全国报刊索引等。

Output parameters:

- `主题` (string)
- `方向` (array)
- `核心平台(需Key)` (object)
- `离线包` (string)
- `第三方机构(部分)` (object)

### `slc_sparql` (~42 tokens)

SPARQL 图查询说明：该平台 Key 仅网页端可用，本工具返回友好提示与替代方案而非报错。

Output parameters:

- `note` (string): 说明与替代调用建议
- `status` (string): 固定为 blocked

### `slc_raw` (~108 tokens)

任意 data1.library.sh.cn 路径的 GET 兜底调用：当专属工具或 slc_api 不满足时使用。需传入 key。

Input parameters:

- `key` (string): 上海图书馆开放数据 APIKey（必填）
- `params` (object): 查询参数（JSON 对象），如 {'freetext':'兰亭','pageNum':1}
- `path` (string, required): 接口路径，如 /webapi/beitie/search

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `souyun_poem` (~160 tokens)

搜韵诗词检索（免 token）：按作者/标题/诗句/朝代/体裁/韵部查诗词，服务于 AIGC 歌词与创作。

Input parameters:

- `dynasty` (string): 朝代，如 Tang / Song
- `keyword` (string, required): 关键词或诗 ID，如 王之涣 / 登鹳雀楼 / 7734
- `pageno` (integer): 页码，从 1 开始
- `rhyme` (string): 韵部，如 江 / 尤
- `scope` (string): 检索范围：All / Author / Title / Sentence
- `type` (string): 体裁，如 QiLv / WuJue

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `souyun_rhyme` (~91 tokens)

搜韵韵典（免 token）：查字所属韵部、词末/词首典故、句末诗例。

Input parameters:

- `char` (string, required): 韵字，如 天 / 月
- `qtype` (integer): 0全部 1韵目 2词末典故 3词首 4词末 5句末诗例

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

### `souyun_couplet` (~58 tokens)

搜韵对仗词汇（免 token）：返回与输入字/词对仗的词汇，用于写对仗句。

Input parameters:

- `word` (string, required): 字或词，如 人间 / 月

Output parameters:

- `data` (object): 接口返回的 JSON 数据，具体结构随接口而异
- `status` (integer): HTTP/业务状态码（200 表示成功）
- `text` (string): 非 JSON 响应时的原始文本（已截断）

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp#diagnostics

## Score history

- 2026-08-16: 73
- 2026-08-15: 72
- 2026-08-14: 69
- 2026-08-13: 69
- 2026-08-12: 54
- 2026-08-11: 69
- 2026-08-10: 68
- 2026-08-09: 68
- 2026-08-08: 68

## Links

- PyPI project: https://pypi.org/project/shanghai-library-open-data-mcp/
- Socket report: https://socket.dev/pypi/package/shanghai-library-open-data-mcp
- Repository: https://github.com/FreyaBit/OpenSH-mcp
- Changelog RSS feed: https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp.json
- HTML version of this page: https://verifymcp.io/servers/freyabit-shanghai-library-open-data-mcp/shanghai-library-open-data-mcp
