_ registry / mcp streamable-http · checked 12h ago

poemship

https://poemship.com

Registry code: 4a4aae11f9bafc3e

api record

PoemShip is a poetry library of classic and modern poems in English, Belarusian, Russian, German, French, Spanish and other European languages, with biographies of the poets and analyses of the poems. For a situation, feeling or occasion: find_poems with need (what the reader wants from the poem: comfort, calm, hope or a good cry), or occasion and recipient for a poem to send, and audience for a child. Then narrow it with one mood or 1–3 tags from library_guide in the poem language (max_lines for a short poem), or call get_collection with the closest collection. For a poem the user names or…

endpoint
https://poemship.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is poemship live?
Yes — it answered the hub's last check (checked 12h ago). It answered 100% of checks over the last 30 days.
Is poemship free to use?
Yes — the hub reached it with no key and no payment.
What tools does poemship have?
9 tools: poem_of_the_day, get_collection, learn_by_heart, find_poems, get_poem, about_poet, list_collections, get_analysis, ….
Is poemship safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
185ms

last good check

priced tools
0

of 9 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 9 tools
1 open 8 never probed 1 of 9 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • library_guide open 12h ago

    What the library offers in one language, to turn a request into filters: the 8 moods (names in that language), the most used tags of that language (most used first) and its collections (title and slug). Call it to narrow find_poems (need, occasion, audience) with one mood and 1–3 tags, or to pick a collection for get_collection. For an easy first poem to learn by heart, find_poems with easy_to_memorise.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "language": {
          "enum": [
            "be",
            "ru",
            "en",
            "de",
            "fr",
            "es",
            "it",
            "pl",
            "nl",
            "sv",
            "da",
            "nb",
            "uk"
          ],
          "type": "string",
          "description": "Language of the poems, an ISO 639-1 code: en, ru, be, de, fr, es, it, pl, nl, sv, da, nb or uk. English by default."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • poem_of_the_day unknown never probed

    Today's poem of the day in a language (English by default): title, poet, opening lines (a poem of 1 to 3 lines whole) and link.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "language": {
          "enum": [
            "be",
            "ru",
            "en",
            "de",
            "fr",
            "es",
            "it",
            "pl",
            "nl",
            "sv",
            "da",
            "nb",
            "uk"
          ],
          "type": "string",
          "description": "Language of the poems, an ISO 639-1 code: en, ru, be, de, fr, es, it, pl, nl, sv, da, nb or uk."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • get_collection unknown never probed

    One collection by its slug (from library_guide or list_collections): title, introduction, link and up to 8 of its poems with the poet, the number of lines, the opening lines (a poem of 1 to 3 lines whole), one sentence on what the poem feels like (use it to choose, it is not the poet's words) and the links.

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "pattern": "^[a-z0-9-]{1,120}$",
          "description": "The collection slug, for example \"wedding-poems\"."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • learn_by_heart unknown never probed

    A plan to learn a poem by heart in a number of days (7 by default, 3 to 14): its stanzas and lines, which stanzas to learn on which day with a time estimate, the review days after, and the link to the free web trainer that does the drilling. No poem in mind: find_poems with easy_to_memorise suggests an easy first poem to learn.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{24}$",
          "description": "The poem id, 24 hex characters."
        },
        "days": {
          "type": "integer",
          "default": 7,
          "maximum": 14,
          "minimum": 3,
          "description": "Days to learn it in."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • find_poems unknown 12h ago

    Search the library. For a situation or a wish ("I just lost my dad", "a poem to thank my mother", "something calm for a ten-year-old", "an easy first poem to learn by heart"), set what the reader needs first: need, or occasion and recipient for a poem to send, audience, easy_to_memorise, easy_to_read. Narrow it with one mood or 1–3 tags from library_guide in the poem language, and max_lines for a short poem. Words in query are looked for in the title and text and in what the poem is about, so "grief father" finds poems of a father's death. For a poem or line the user remembers, put its words in query. Returns up to 10 poems, the best fit first, with the poet, the number of lines, the opening lines (a poem of 1 to 3 lines whole), one sentence on what the poem feels like (use it to choose, it is not the poet's words) and the link. need, occasion, recipient, easy_to_memorise, easy_to_read and audience cover English, Russian and Belarusian poems. Give at least one filter. When nothing fits, or the user wants a deeper search by mood or situation, give them the Smart Search link from the result: a page of the site where they describe it in their own words.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "mood": {
          "type": "string",
          "maxLength": 40,
          "description": "One library mood: sad, anxious, angry, contemplative, inspiring, romantic, dreamy or joyful, or its name in the poem language from library_guide."
        },
        "need": {
          "enum": [
            "comfort",
            "calm",
            "hope",
            "energy",
            "release",
            "perspective",
            "feel_understood",
            "smile",
            "tenderness"
          ],
          "type": "string",
          "description": "What the reader wants the poem to do for them: comfort (consoling words for someone who suffers), calm (stillness, a gentle pace), hope (ends more hopeful than it begins), energy (courage, action), release (a good cry), perspective (troubles set against something larger), feel_understood (a painful feeling put into words and left as it is), smile (funny or playful) or tenderness (love toward someone). Only poems that clearly do it come back, the best fit first."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 60
          },
          "maxItems": 5,
          "minItems": 1,
          "description": "Tags from library_guide in the poem language, for example [\"grief\", \"father\"]. A poem matches any of them."
        },
        "limit": {
          "type": "integer",
          "default": 5,
          "maximum": 10,
          "minimum": 1
        },
        "query": {
          "type": "string",
          "maxLength": 200,
          "minLength": 2,
          "description": "Words in any order, looked for in the title, the text and what the poem is about. Every word must appear. Poems with all of them in the title come first. When no poem has them all, poems with any of them come back and the result says so."
        },
        "author": {
          "type": "string",
          "maxLength": 100,
          "description": "The poet's name or part of it, for example \"Dickinson\"."
        },
        "audience": {
          "enum": [
            "children",
            "teens",
            "anyone"
          ],
          "type": "string",
          "description": "children (up to 12), teens or anyone. Leaves out poems not suited to that age. With this or any of need, occasion, recipient, easy_to_memorise and easy_to_read, explicit poems are left out."
        },
        "language": {
          "enum": [
            "be",
            "ru",
            "en",
            "de",
            "fr",
            "es",
            "it",
            "pl",
            "nl",
            "sv",
            "da",
            "nb",
            "uk"
          ],
          "type": "string",
          "description": "Language of the poems, an ISO 639-1 code: en, ru, be, de, fr, es, it, pl, nl, sv, da, nb or uk."
        },
        "occasion": {
          "enum": [
            "greeting",
            "romance",
            "thanks",
            "celebration",
            "holiday",
            "support",
            "condolence",
            "apology",
            "farewell",
            "blessing",
            "friendship"
          ],
          "type": "string",
          "description": "For a poem to send someone as a personal message: greeting (good morning, good night, thinking of you), romance, thanks, celebration (birthday, wedding, newborn, graduation), holiday, support (illness, hard times, before a challenge), condolence, apology, farewell, blessing or friendship. Only poems that read as a message in the sender's own words come back."
        },
        "max_lines": {
          "type": "integer",
          "maximum": 500,
          "minimum": 1,
          "description": "Only poems of at most this many lines."
        },
        "recipient": {
          "enum": [
            "partner",
            "friend",
            "parent",
            "child",
            "anyone"
          ],
          "type": "string",
          "description": "Who the poem is sent to: partner, friend, parent, child or anyone. Poems for that person come first, then poems that suit anyone."
        },
        "easy_to_read": {
          "type": "boolean",
          "description": "Only poems in plain language a teenager follows on first reading."
        },
        "easy_to_memorise": {
          "type": "boolean",
          "description": "Only poems easy to learn by heart (steady rhythm and rhyme, not long), the easiest first. For a first poem to learn."
        }
      },
      "additionalProperties": false
    }
    arguments 123 lines
  • get_poem unknown never probed

    One poem by its id (from find_poems or a poem page URL): title, poet, language, the number of lines and stanzas, the opening of the text (a poem of 1 to 3 lines whole), a short summary when the library has one, and the links to the full poem, its analysis (when there is one) and the trainer to learn it by heart.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{24}$",
          "description": "The poem id, 24 hex characters."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • about_poet unknown 12h ago

    A poet in the library by name or by slug (the last part of the poet page URL): the biography (up to about 1,500 characters) and a one-line summary of it, the number of poems, up to 10 poems with links, and the poet page.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 2,
          "description": "The poet's name, for example \"Emily Dickinson\"."
        },
        "slug": {
          "type": "string",
          "pattern": "^[a-z0-9-]{1,100}$",
          "description": "The poet page slug, for example \"emily-dickinson\"."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • list_collections unknown never probed

    For an occasion or a feeling (a wedding, a funeral, missing someone, autumn), the library's collections of poems in a language (all languages when none is given): title, slug, a short introduction and the link. Pick the closest and call get_collection with its slug. Collections exist in English, Russian and Belarusian.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "language": {
          "enum": [
            "be",
            "ru",
            "en",
            "de",
            "fr",
            "es",
            "it",
            "pl",
            "nl",
            "sv",
            "da",
            "nb",
            "uk"
          ],
          "type": "string",
          "description": "Language of the poems, an ISO 639-1 code: en, ru, be, de, fr, es, it, pl, nl, sv, da, nb or uk."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • get_analysis unknown never probed

    The summary of a poem and the opening of its analysis (about 1,200 characters at most), with links to the summary and analysis pages, when the library has them. Written in the language of the poem.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{24}$",
          "description": "The poem id, 24 hex characters."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 4a4aae11f9bafc3e.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/4a4aae11f9bafc3e/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/4a4aae11f9bafc3e/badge.svg)](https://brick.blue/agent/4a4aae11f9bafc3e?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.