MCP server: One MCP server.

PoetryDB MCP Server

@lacausecryptoMCP server · External

Classic poetry search and discovery via PoetryDB.

Art & culturev1.0.1MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npmmcp-poetryv1.0.1

Run

npx -y mcp-poetry

MCP client config

{
  "mcpServers": {
    "poetrydb-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-poetry"
      ]
    }
  }
}
README2 min read

npm version CI npm total downloads Node.js License: MIT

Unofficial MCP server for exploring classic poetry through PoetryDB.

At a glance

MetricValue
Tools12
Categories3
Transportstdio
Authnone
MCP Registry nameio.github.lacausecrypto/poetrydb
npm packagemcp-poetry
Source APIhttps://poetrydb.org
Contentclassic poetry by author, title, line text, and form

Install

bash
npm install -g mcp-poetry

Or from source:

bash
npm install
npm run build

MCP Registry

This server is published to the MCP Registry under:

text
io.github.lacausecrypto/poetrydb

Claude Desktop

json
{
  "mcpServers": {
    "poetrydb": {
      "command": "npx",
      "args": ["-y", "mcp-poetry"]
    }
  }
}

For a local checkout, replace the command with:

json
{
  "mcpServers": {
    "poetrydb": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-poetrydb/dist/index.js"]
    }
  }
}

Tools

Catalog

  • catalog_overview: list categories and available tools
  • catalog_category: show tools for a specific category
  • search_by_author: find poems by author name
  • search_by_title: find a poem by title
  • search_by_lines: search text inside poem lines
  • search_by_linecount: find poems by exact line count
  • search_combined: query multiple PoetryDB fields in one request
  • list_authors: list all available authors

Discovery

  • random_poem: fetch one or more random poems
  • get_sonnets: fetch 14-line poems
  • get_haikus: fetch 3-line poems
  • list_titles: list poem titles

Example requests

Simple

text
Random poem please.

Expected tool:

text
random_poem({ "count": 1 })

Browse

text
Show me the available poets.

Expected tool:

text
list_authors({})
text
Find Ozymandias.

Expected tool:

text
search_by_title({ "title": "Ozymandias" })
text
Show me poems containing the word "love".

Expected tool:

text
search_by_lines({ "text": "love" })

Form-based discovery

text
Give me 14-line poems by Shakespeare.

Expected tool:

text
search_combined({ "fields": "author,linecount", "values": "Shakespeare;14" })

More advanced

text
List Shakespeare results, but only return title and linecount.

Expected tool:

text
search_by_author({ "author": "Shakespeare", "fields": "title,linecount" })

Multi-step exploration

text
Start with the catalog, then show me the discovery tools, then give me a sonnet.

Typical tool sequence:

text
catalog_overview({})
catalog_category({ "category_id": "discovery" })
get_sonnets({})

Development

bash
npm run build
npm run test:ci
npm test
npm pack --dry-run

Environment variables:

  • POETRYDB_BASE_URL
  • POETRYDB_REQUEST_TIMEOUT_MS
  • POETRYDB_REQUEST_RETRIES

Notes

  • No API key is required.
  • This package is not affiliated with PoetryDB.
  • Built for MCP clients that prefer a compact stdio server over a custom PoetryDB integration.
  • MCP Registry identity: io.github.lacausecrypto/poetrydb

Attribution

Additional implementation notes are in documentation.md.

Similar modules

Browse Art & culture