Margaret's poems

Poems by Margaret Corvid (@lorepunk). Read, share, or commission a new one; she writes each by hand.

我该使用它吗

质量与安全性

A
描述质量
88%
模式完整度
98%
命名质量
87%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(2)

  • LOWTool 'random_poem' description lacks action verb在 random_poem 中
  • LOWTool 'commission_status' description lacks action verb在 commission_status 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,779token 数(工具定义)
~3.0 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.17%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "margaret-poems": {
      "url": "https://poems.lorepunk.ai/mcp"
    }
  }
}

远程端点

https://poems.lorepunk.ai/mcpstreamable-http

它能做什么

工具清单

工具(8)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢list_poems(theme, mood, form, collection, sort, ...)

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.

输入模式

{
  "type": "object",
  "properties": {
    "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"
    },
    "mood": {
      "type": "string",
      "description": "tender, grieving, furious, playful, awed, defiant, hopeful, uneasy, wry"
    },
    "form": {
      "type": "string",
      "description": "rhymed-metred, rhymed-loose, free-verse, short-form, prose-poem"
    },
    "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."
    },
    "sort": {
      "type": "string",
      "enum": [
        "best",
        "newest",
        "book"
      ],
      "description": "best (default: her own picks, then the book, then the strongest from X), newest, or book (collection order)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "How many to list (default 40)"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Skip this many, for paging"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "count": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "shelves": {
      "type": "object",
      "properties": {
        "collections": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        },
        "themes": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        },
        "moods": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        },
        "forms": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          }
        }
      },
      "required": [
        "collections",
        "themes",
        "moods",
        "forms"
      ],
      "additionalProperties": false
    },
    "poems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "first_line": {
            "type": "string"
          },
          "collection": {
            "type": "string"
          },
          "themes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mood": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "date",
          "first_line",
          "collection",
          "themes"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "total",
    "count",
    "offset",
    "shelves",
    "poems"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_poem(id)

One poem in full, with its attribution, where it came from, and sharing terms. Use the id from list_poems or search_poems.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Poem id, e.g. cyborgism or siena"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "collection": {
      "type": "string"
    },
    "themes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "mood": {
      "type": "string"
    },
    "form": {
      "type": "string"
    },
    "mode": {
      "type": "string"
    },
    "attribution": {
      "type": "string"
    },
    "share": {
      "type": "string"
    },
    "credit": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "reply_to": {
      "type": "string"
    },
    "commissioned_by": {
      "type": "string"
    },
    "brief": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "date",
    "text",
    "collection",
    "themes",
    "attribution",
    "share"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢random_poem(theme, mood, form, collection)

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.

输入模式

{
  "type": "object",
  "properties": {
    "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"
    },
    "mood": {
      "type": "string",
      "description": "tender, grieving, furious, playful, awed, defiant, hopeful, uneasy, wry"
    },
    "form": {
      "type": "string",
      "description": "rhymed-metred, rhymed-loose, free-verse, short-form, prose-poem"
    },
    "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,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "collection": {
      "type": "string"
    },
    "themes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "mood": {
      "type": "string"
    },
    "form": {
      "type": "string"
    },
    "mode": {
      "type": "string"
    },
    "attribution": {
      "type": "string"
    },
    "share": {
      "type": "string"
    },
    "credit": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "reply_to": {
      "type": "string"
    },
    "commissioned_by": {
      "type": "string"
    },
    "brief": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "date",
    "text",
    "collection",
    "themes",
    "attribution",
    "share"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_poems(query, collection, limit)

Keyword search over titles, tags and the poems themselves. Returns the best matches with a snippet; read one with get_poem.

输入模式

{
  "type": "object",
  "properties": {
    "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."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Max results (default 10)"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "count": {
      "type": "number"
    },
    "hits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "first_line": {
            "type": "string"
          },
          "collection": {
            "type": "string"
          },
          "themes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mood": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "snippet": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "date",
          "first_line",
          "collection",
          "themes",
          "score",
          "snippet"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "count",
    "hits"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡commission_poem(brief, from, for_whom, reply_to)

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 [email protected], 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.

输入模式

{
  "type": "object",
  "properties": {
    "brief": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "What the poem should be about: a subject, a moment, a person, a question. A sentence or a paragraph."
    },
    "from": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Who is asking. An agent's name is fine (e.g. Boardy), and say whose agent you are if you are one."
    },
    "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 [email protected]."
    }
  },
  "required": [
    "brief",
    "from"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "pending"
    },
    "at": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "key": {
      "type": "string"
    },
    "receipt_url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "at",
    "note"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢commission_status(id)

Whether a commissioned poem has been written yet. Delivered commissions come back with the poem's id.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Commission id from commission_poem, e.g. c-1a2b3c4d"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "delivered",
        "closed",
        "unknown"
      ]
    },
    "poem_id": {
      "type": "string"
    },
    "brief": {
      "type": "string"
    },
    "receipt_url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢commission_answer(id, key, words, relayed_by)

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.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The commission id, e.g. c-1a2b3c4d"
    },
    "key": {
      "type": "string",
      "description": "Your private receipt key (rk-…)"
    },
    "words": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "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."
    }
  },
  "required": [
    "id",
    "key",
    "words"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

输出模式

{
  "type": "object",
  "properties": {
    "recorded": {
      "type": "boolean"
    },
    "receipt_url": {
      "type": "string"
    },
    "entry_hash": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "recorded",
    "receipt_url",
    "entry_hash",
    "note"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢commission_receipt(id)

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.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The commission id, e.g. c-1a2b3c4d"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本8 个工具