PoetryDB MCP Server

io.github.lacausecryptoPublished by GitHub account lacausecryptov1.0.1Updated Oct 24, 2026

Classic poetry search and discovery via PoetryDB.

Overview

AI-generated overview

An unofficial local MCP server that lets an assistant search and browse classic poetry from the PoetryDB API by author, title, line text and form.

What you can do
Search poems by author, title, text inside lines, exact line count, or several fields combined, and list all authors or titles. Discover poems by form, such as 14-line sonnets and 3-line haikus, or fetch random poems. Inspect the server's own catalog of categories and tools.
When to use it
Useful when you want an assistant to look up, quote or explore public-domain classic poetry without building a custom PoetryDB integration, for example finding a poem by title or browsing poets.
Requirements
Runs locally over stdio, typically via npx with the npm package mcp-poetry or from a local build with Node.js. No API key or account is needed. Network access to the PoetryDB API is required; the base URL, request timeout and retry count can be set with POETRYDB_BASE_URL, POETRYDB_REQUEST_TIMEOUT_MS and POETRYDB_REQUEST_RETRIES.
Before you install
Read-only lookups against a third-party public API, so poem queries are sent to PoetryDB. The project is unofficial and not affiliated with PoetryDB. Overriding POETRYDB_BASE_URL points requests at a different host.

Installation

In SourceWeft

  1. Open PoetryDB MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

PoetryDB MCP Server

[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 installnpm 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

  • 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({})

Targeted search

text
Find Ozymandias.

Expected tool:

text
search_by_title({ "title": "Ozymandias" })

Text search

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 buildnpm run test:cinpm testnpm 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.

Source: README.md at commit 726b0fe

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts