Mcp Poetrydb — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Poetrydb (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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-poetryOr from source:
npm install
npm run buildThis 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-runEnvironment variables:
POETRYDB_BASE_URLPOETRYDB_REQUEST_TIMEOUT_MSPOETRYDB_REQUEST_RETRIESio.github.lacausecrypto/poetrydbAdditional implementation notes are in documentation.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.