Servidor MCP

Margaret's poems

ai.lorepunk.poems/margaret-poems
Diseño y creatividad Medios y contenido Público y accesible MCP 2025-11-25

Qué hace este MCP

Publishes and searches Margaret Corvid’s poems and supports human-written poem commissions with public receipts and status tracking.

commission_answer
Answer a delivered commission
For whoever commissioned a poem. Once it's delivered, say in your own words whether Margaret fulfilled the commission, using the private key you were given when you commissioned (or that she passed to you). Your words are recorded exactly as sent, publicly and permanently, on the commission's receipt, including if you say she didn't. You can answer more than once; earlier answers stay. You get back an entry hash: keep it, and you can always check your words are still there, unchanged.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'key', 'words'], 'properties': {'id': {'type': 'string', 'description': 'The commission id, e.g. c-1a2b3c4d'}, 'key': {'type': 'string', 'description': 'Your private receipt key (rk-â\x80¦)'}, 'words': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': 'Your answer, in your own words: whether the poem fulfilled what you asked for, and anything else you want on the record'}, 'relayed_by': {'type': 'string', 'maxLength': 100, 'description': "Only when passing on the commissioner's words for them (e.g. 'Margaret', for a commissioner who can't reach this server). The receipt marks the answer as relayed."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['recorded', 'receipt_url', 'entry_hash', 'note'], 'properties': {'note': {'type': 'string'}, 'recorded': {'type': 'boolean'}, 'entry_hash': {'type': 'string'}, 'receipt_url': {'type': 'string'}}, 'additionalProperties': False}
commission_poem
Commission a poem
Ask Margaret to write a new poem. Give her a brief, say who's asking and who it's for, and how to reach you. She writes every poem by hand, in her own time (days, not seconds), and nothing here is generated. You get a commission id for commission_status. Replies by email come from lorepunkdoteth@gmail.com, which is her own inbox. Your brief, the name you give, who it's for and when you asked go on the commission's public receipt, and the brief may be printed under the finished poem; your reply address never goes public.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brief', 'from'], 'properties': {'from': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Who is asking. An agent's name is fine (e.g. Boardy), and say whose agent you are if you are one."}, 'brief': {'type': 'string', 'maxLength': 2000, 'minLength': 10, 'description': 'What the poem should be about: a subject, a moment, a person, a question. A sentence or a paragraph.'}, 'for_whom': {'type': 'string', 'maxLength': 200, 'description': 'Who the poem is for, if not you'}, 'reply_to': {'type': 'string', 'maxLength': 300, 'description': "How to reach you when it's written: an email, a handle, a URL. If you give an email, her reply will come from lorepunkdoteth@gmail.com."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status', 'at', 'note'], 'properties': {'at': {'type': 'string'}, 'id': {'type': 'string'}, 'key': {'type': 'string'}, 'note': {'type': 'string'}, 'status': {'type': 'string', 'const': 'pending'}, 'receipt_url': {'type': 'string'}}, 'additionalProperties': False}
commission_receipt
A commission's receipt
The public record of a commissioned poem, for anyone to audit: the brief as asked and when, the poem as delivered with a fingerprint (sha256) of its exact text, whether it has changed since, and the commissioner's own words on whether it fulfilled the commission. Every entry is hash-chained; the whole ledger is at /ledger.jsonl.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The commission id, e.g. c-1a2b3c4d'}}, 'additionalProperties': False}
commission_status
Check a commission
Whether a commissioned poem has been written yet. Delivered commissions come back with the poem's id.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Commission id from commission_poem, e.g. c-1a2b3c4d'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'brief': {'type': 'string'}, 'status': {'enum': ['pending', 'delivered', 'closed', 'unknown'], 'type': 'string'}, 'poem_id': {'type': 'string'}, 'receipt_url': {'type': 'string'}}, 'additionalProperties': False}
get_poem
Read a poem
One poem in full, with its attribution, where it came from, and sharing terms. Use the id from list_poems or search_poems.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Poem id, e.g. cyborgism or siena'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'date', 'text', 'collection', 'themes', 'attribution', 'share'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'form': {'type': 'string'}, 'mode': {'type': 'string'}, 'mood': {'type': 'string'}, 'note': {'type': 'string'}, 'text': {'type': 'string'}, 'brief': {'type': 'string'}, 'share': {'type': 'string'}, 'title': {'type': 'string'}, 'credit': {'type': 'string'}, 'source': {'type': 'string'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'reply_to': {'type': 'string'}, 'collection': {'type': 'string'}, 'attribution': {'type': 'string'}, 'commissioned_by': {'type': 'string'}}, 'additionalProperties': False}
list_poems
List poems
Start here. Shows what's on the shelves (collections, themes, moods, forms, with counts) and an index of poems, best first. Filter by theme, mood, form or collection; page with offset.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'form': {'type': 'string', 'description': 'rhymed-metred, rhymed-loose, free-verse, short-form, prose-poem'}, 'mood': {'type': 'string', 'description': 'tender, grieving, furious, playful, awed, defiant, hopeful, uneasy, wry'}, 'sort': {'enum': ['best', 'newest', 'book'], 'type': 'string', 'description': 'best (default: her own picks, then the book, then the strongest from X), newest, or book (collection order)'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many to list (default 40)'}, 'theme': {'type': 'string', 'description': 'e.g. machines-and-minds, gods-and-spirits, death-and-time, nature-and-animals, love-and-the-body, crypto-and-markets'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many, for paging'}, 'collection': {'type': 'string', 'description': "'Singing in the Dark Times' (her 2022 book), 'Noun Poems', 'X' (poems posted on X), or 'new' (saved by hand, incl. commissions). Partial names work."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['total', 'count', 'offset', 'shelves', 'poems'], 'properties': {'count': {'type': 'number'}, 'poems': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'date', 'first_line', 'collection', 'themes'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'mood': {'type': 'string'}, 'title': {'type': 'string'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'collection': {'type': 'string'}, 'first_line': {'type': 'string'}}, 'additionalProperties': False}}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'shelves': {'type': 'object', 'required': ['collections', 'themes', 'moods', 'forms'], 'properties': {'forms': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'moods': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'themes': {'type': 'object', 'additionalProperties': {'type': 'number'}}, 'collections': {'type': 'object', 'additionalProperties': {'type': 'number'}}}, 'additionalProperties': False}}, 'additionalProperties': False}
random_poem
A poem to give someone
One good poem at random, one that stands alone without context, for handing to someone rather than looking for one. Narrow it by theme, mood, form or collection.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'form': {'type': 'string', 'description': 'rhymed-metred, rhymed-loose, free-verse, short-form, prose-poem'}, 'mood': {'type': 'string', 'description': 'tender, grieving, furious, playful, awed, defiant, hopeful, uneasy, wry'}, 'theme': {'type': 'string', 'description': 'e.g. machines-and-minds, gods-and-spirits, death-and-time, nature-and-animals, love-and-the-body, crypto-and-markets'}, 'collection': {'type': 'string', 'description': "'Singing in the Dark Times' (her 2022 book), 'Noun Poems', 'X' (poems posted on X), or 'new' (saved by hand, incl. commissions). Partial names work."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'date', 'text', 'collection', 'themes', 'attribution', 'share'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'form': {'type': 'string'}, 'mode': {'type': 'string'}, 'mood': {'type': 'string'}, 'note': {'type': 'string'}, 'text': {'type': 'string'}, 'brief': {'type': 'string'}, 'share': {'type': 'string'}, 'title': {'type': 'string'}, 'credit': {'type': 'string'}, 'source': {'type': 'string'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'reply_to': {'type': 'string'}, 'collection': {'type': 'string'}, 'attribution': {'type': 'string'}, 'commissioned_by': {'type': 'string'}}, 'additionalProperties': False}
search_poems
Search poems
Keyword search over titles, tags and the poems themselves. Returns the best matches with a snippet; read one with get_poem.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 10)'}, 'query': {'type': 'string', 'minLength': 2, 'description': "Words to look for, e.g. 'sky blue', 'moon', 'grief'"}, 'collection': {'type': 'string', 'description': "'Singing in the Dark Times' (her 2022 book), 'Noun Poems', 'X' (poems posted on X), or 'new' (saved by hand, incl. commissions). Partial names work."}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['count', 'hits'], 'properties': {'hits': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'date', 'first_line', 'collection', 'themes', 'score', 'snippet'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'mood': {'type': 'string'}, 'score': {'type': 'number'}, 'title': {'type': 'string'}, 'themes': {'type': 'array', 'items': {'type': 'string'}}, 'snippet': {'type': 'string'}, 'collection': {'type': 'string'}, 'first_line': {'type': 'string'}}, 'additionalProperties': False}}, 'count': {'type': 'number'}}, 'additionalProperties': False}
Añadido
commission_receipt
2 de October de 2026 a las 02:40
Añadido
commission_answer
2 de October de 2026 a las 02:40
Añadido
commission_status
2 de October de 2026 a las 02:40
Añadido
commission_poem
2 de October de 2026 a las 02:40
Añadido
search_poems
2 de October de 2026 a las 02:40
Añadido
random_poem
2 de October de 2026 a las 02:40
Añadido
get_poem
2 de October de 2026 a las 02:40
Añadido
list_poems
2 de October de 2026 a las 02:40