Classic poetry search and discovery via PoetryDB.
Unofficial MCP server for exploring classic poetry through PoetryDB.
| Metric | Value |
|---|---|
| Tools | 12 |
| Categories | 3 |
| Transport | stdio |
| Auth | none |
| MCP Registry name | io.github.lacausecrypto/poetrydb |
| npm package | mcp-poetry |
| Source API | https://poetrydb.org |
| Content | classic poetry by author, title, line text, and form |
npm install -g mcp-poetry
Or from source:
npm install
npm run build
This server is published to the MCP Registry under:
io.github.lacausecrypto/poetrydb
{
"mcpServers": {
"poetrydb": {
"command": "npx",
"args": ["-y", "mcp-poetry"]
}
}
}
For a local checkout, replace the command with:
{
"mcpServers": {
"poetrydb": {
"command": "node",
"args": ["/absolute/path/to/mcp-poetrydb/dist/index.js"]
}
}
}
catalog_overview: list categories and available toolscatalog_category: show tools for a specific categorysearch_by_author: find poems by author namesearch_by_title: find a poem by titlesearch_by_lines: search text inside poem linessearch_by_linecount: find poems by exact line countsearch_combined: query multiple PoetryDB fields in one requestlist_authors: list all available authorsrandom_poem: fetch one or more random poemsget_sonnets: fetch 14-line poemsget_haikus: fetch 3-line poemslist_titles: list poem titlesRandom poem please.
Expected tool:
random_poem({ "count": 1 })
Show me the available poets.
Expected tool:
list_authors({})
Find Ozymandias.
Expected tool:
search_by_title({ "title": "Ozymandias" })
Show me poems containing the word "love".
Expected tool:
search_by_lines({ "text": "love" })
Give me 14-line poems by Shakespeare.
Expected tool:
search_combined({ "fields": "author,linecount", "values": "Shakespeare;14" })
List Shakespeare results, but only return title and linecount.
Expected tool:
search_by_author({ "author": "Shakespeare", "fields": "title,linecount" })
Start with the catalog, then show me the discovery tools, then give me a sonnet.
Typical tool sequence:
catalog_overview({})
catalog_category({ "category_id": "discovery" })
get_sonnets({})
npm run build
npm run test:ci
npm test
npm pack --dry-run
Environment variables:
POETRYDB_BASE_URLPOETRYDB_REQUEST_TIMEOUT_MSPOETRYDB_REQUEST_RETRIESio.github.lacausecrypto/poetrydbAdditional implementation notes are in documentation.md.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y mcp-poetryMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-lacausecrypto-poetrydb": {
"command": "npx",
"args": [
"-y",
"mcp-poetry"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemcp-poetrynpmPoetryDB MCP Server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.