海棠诗社 MCP
A read-only, public MCP server for searching and browsing classical Chinese poetry, authors, and categories from haitang.app. It supports querying works, authors, and various classification lists like dynasties, collections, and themes without requiring authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://haitang.app/mcpWhat you can do with it
- Search for classical Chinese poetry by keyword
- List authors and their works by dynasty
- Browse poetry collections and categories
- Retrieve detailed work content and annotations
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- haitang 1.1.0
- MCP protocol
- 2025-06-18
- Tools
- 16 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
search_poetry
Search public classical Chinese poetry by keyword across authors and works. Returns public URLs and short excerpts. Use get_work or get_author for details.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Keyword matching public authors and poetry, 1–60 characters."
},
"workLimit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"authorLimit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_dynasties
List all public dynasties as name/slug pairs. Use the dynasty name as category when browsing works or authors. Optional browse filters also return live facets for collections, dynasties and types; the static list stays complete.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tag": {
"enum": [
"shi",
"ci",
"qu",
"wen"
],
"type": "string",
"description": "Work kind slug from list_types: shi (诗), ci (词), qu (曲), wen (文)."
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Dynasty name from list_dynasties, for example 唐. Not a group name."
},
"collection": {
"type": "string",
"pattern": "^[1-9]\\d{0,9}$",
"description": "Collection ID string from list_collections, for example \"1\"."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_collections
List all public collections as name/slug pairs. Use the collection slug as the collection ID string when browsing works. Optional browse filters also return live facets for collections, dynasties and types; the static list stays complete.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tag": {
"enum": [
"shi",
"ci",
"qu",
"wen"
],
"type": "string",
"description": "Work kind slug from list_types: shi (诗), ci (词), qu (曲), wen (文)."
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Dynasty name from list_dynasties, for example 唐. Not a group name."
},
"collection": {
"type": "string",
"pattern": "^[1-9]\\d{0,9}$",
"description": "Collection ID string from list_collections, for example \"1\"."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_types
List all public work kinds as name/slug pairs. Use the kind slug as tag when browsing works. Optional browse filters also return live facets for collections, dynasties and types; the static list stays complete.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tag": {
"enum": [
"shi",
"ci",
"qu",
"wen"
],
"type": "string",
"description": "Work kind slug from list_types: shi (诗), ci (词), qu (曲), wen (文)."
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Dynasty name from list_dynasties, for example 唐. Not a group name."
},
"collection": {
"type": "string",
"pattern": "^[1-9]\\d{0,9}$",
"description": "Collection ID string from list_collections, for example \"1\"."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_sorts
List public work sort labels and slugs. A null slug means omit sort for the site default order.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_themes
List the public 主题 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_festivals
List the public 节日 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_solar_terms
List the public 节气 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_cipai
List the public 词牌 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_seasons
List the public 时令 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_geography
List the public 地理 taxonomy group with its name, slug and categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_groups
List the remaining public taxonomy groups: 选集, 写景, 时间, 花卉, 课本, 城市, 名山, 用典 and 书籍, with their categories.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_works
Browse public works with optional collection ID, dynasty name (category), kind slug (tag), sort and page. Returns public work URLs and page metadata.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tag": {
"enum": [
"shi",
"ci",
"qu",
"wen"
],
"type": "string",
"description": "Work kind slug from list_types: shi (诗), ci (词), qu (曲), wen (文)."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1,
"description": "Page number, from 1 to 1000."
},
"sort": {
"enum": [
"views_count_asc"
],
"type": "string",
"description": "Omit for the site default descending order; views_count_asc reverses it. Collections follow curated show order."
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Dynasty name from list_dynasties, for example 唐. Not a group name."
},
"collection": {
"type": "string",
"pattern": "^[1-9]\\d{0,9}$",
"description": "Collection ID string from list_collections, for example \"1\"."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_authors
Browse public authors, optionally filtered by dynasty name (category). Returns public author URLs and page metadata.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1,
"description": "Page number, from 1 to 1000."
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Dynasty name from list_dynasties, for example 唐. Not a group name."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_work
Read a public work by numeric ID, including poem text, introduction, annotations, translation, collections and quotes. A missing work returns work: null.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive numeric ID from a search or list result."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_author
Read a public author by numeric ID and a page of their works. A missing author returns author: null.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive numeric ID from a search or list result."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1,
"description": "Page number, from 1 to 1000."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 270 ms
- 95th percentile latency
- 270 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 270 ms · metadata changed · 16 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mcp-haitang https://haitang.app/mcpCodex
codex mcp add mcp-haitang --url https://haitang.app/mcpCursor
{
"mcpServers": {
"mcp-haitang": {
"url": "https://haitang.app/mcp"
}
}
}Cline
{
"mcpServers": {
"mcp-haitang": {
"type": "streamableHttp",
"url": "https://haitang.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mcp-haitang": {
"type": "http",
"url": "https://haitang.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mcp-haitang https://haitang.app/mcpClaude Desktop
{
"mcpServers": {
"mcp-haitang": {
"url": "https://haitang.app/mcp"
}
}
}Windsurf
{
"mcpServers": {
"mcp-haitang": {
"serverUrl": "https://haitang.app/mcp"
}
}
}Let your agent find its tools
Find servers like 海棠诗社 MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.