Skip to main content
Glama
FreyaBit

io.github.FreyaBit/shanghai-library-open-data-mcp

by FreyaBit

slc_api

Invoke any of 97 Shanghai Library open data APIs by supplying the endpoint ID, query parameters, optional path arguments, and your API key. Covers genealogy, ancient books, maps, films, and more.

Instructions

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNo上海图书馆开放数据 APIKey(必填)
paramsNo查询参数,如 freetext=江南, pageNum=1
endpointYes接口 id 或 家族名(取该家族首个接口)
path_argsNo路径占位 {0}{1} 的取值列表
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It mentions the required API key (authentication), path_args usage, and endpoint ID, but fails to indicate whether operations are read-only, how errors are handled, or what the response format looks like. Given that this tool can invoke 97 different APIs, these omitted traits are significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured with semicolons, placing the purpose first, then parameter guidance, then a usage hint. Every sentence adds value, though the long list of domains could be trimmed without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (universal dispatcher for 97 APIs) and absence of output schema and annotations, the description covers purpose, parameter roles, authentication, and a discovery workflow. Missing details about return format and error behavior are notable, but the universal nature makes them less critical; overall it is fairly complete for a dispatcher.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description repeats parameter roles but introduces a contradiction: it states key is required (必填), while the input schema lists only endpoint as required. This conflicting information reduces the usefulness of the description and misleads the agent, so the score is lowered to 2.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies it as a universal dispatcher calling all webapi interfaces registered in api_2025, listing specific content domains and the count (97). This verb-resource pairing distinguishes it from sibling tools, and the instruction to use slc_endpoints for ID lookup reinforces its role as the generic access point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs users to first use slc_endpoints to find the interface ID, which serves as a prerequisite and names an alternative tool. It does not explicitly state when to avoid this tool in favor of specialized siblings, but the context makes it clear this is the generic dispatcher for all registered APIs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FreyaBit/OpenSH-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server