Server definition
- Hash
- sha256:b08a89d19812e89898f4fd9154ae2a7df4f0d9c3f902888284667bacd560d6cf
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "lucid.page turns Markdown into a beautiful, shareable page at https://lucid.page/<slug>. Publishing works anonymously; send an lp_ API key as 'Authorization: Bearer lp_...' (or ?apiKey=lp_... on this endpoint URL) to publish private documents, to update, list, and delete the documents you own, and to collect pages and links into binders (https://lucid.page/b/<slug>). Use get_limits for the full account matrix. Signing up is free and takes a minute: https://lucid.page → dashboard → mint a key.",
"tools": [
{
"description": "Append one item to a binder you own (requires an lp_ API key). Pass exactly one of slug (a lucid.page page) or url (any http(s) link), plus an optional title (links only) and note.",
"inputSchema": {
"properties": {
"binder": {
"description": "The binder slug.",
"type": "string"
},
"note": {
"description": "Optional note shown with the item.",
"type": "string"
},
"slug": {
"description": "A lucid.page page slug: one of your own pages, or anyone's public or unlisted page.",
"type": "string"
},
"title": {
"description": "Optional display title for a link.",
"type": "string"
},
"url": {
"description": "An http(s) link. Links to lucid.page pages are stored as those pages.",
"type": "string"
}
},
"required": [
"binder"
],
"type": "object"
},
"name": "add_to_binder",
"outputSchema": {
"properties": {
"binder": {
"description": "The binder slug",
"type": "string"
},
"item_count": {
"type": "integer"
},
"item_id": {
"description": "Id of the added item",
"type": "string"
},
"url": {
"description": "The binder page URL",
"type": "string"
}
},
"required": [
"binder",
"url",
"item_id",
"item_count"
],
"type": "object"
}
},
{
"description": "Create a binder: an ordered list of lucid.page pages and external links, each with an optional note, served at https://lucid.page/b/<slug> (requires an lp_ API key). Up to 100 binders per account and 500 items per binder. Public binders with at least one visible item are indexable.",
"inputSchema": {
"properties": {
"description": {
"description": "Optional plain-text description; blank lines start a new paragraph.",
"type": "string"
},
"items": {
"description": "Optional initial items, in order. Each needs exactly one of slug or url.",
"items": {
"properties": {
"note": {
"description": "Optional note shown with the item.",
"type": "string"
},
"slug": {
"description": "A lucid.page page slug: one of your own pages, or anyone's public or unlisted page.",
"type": "string"
},
"title": {
"description": "Optional display title for a link.",
"type": "string"
},
"url": {
"description": "An http(s) link. Links to lucid.page pages are stored as those pages.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"title": {
"description": "The binder title (1-120 characters).",
"type": "string"
},
"visibility": {
"description": "Defaults to unlisted.",
"enum": [
"private",
"unlisted",
"public"
],
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "create_binder",
"outputSchema": {
"properties": {
"item_count": {
"type": "integer"
},
"slug": {
"type": "string"
},
"url": {
"description": "The binder page URL, https://lucid.page/b/<slug>",
"type": "string"
},
"visibility": {
"enum": [
"private",
"unlisted",
"public"
],
"type": "string"
}
},
"required": [
"slug",
"url",
"visibility",
"item_count"
],
"type": "object"
}
},
{
"description": "Permanently delete a page you own (requires an lp_ API key). The URL stops serving immediately and cannot be recovered.",
"inputSchema": {
"properties": {
"slug": {
"description": "The document slug — the path part of its https://lucid.page/<slug> URL.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "delete_doc",
"outputSchema": {
"properties": {
"deleted": {
"description": "Slug of the deleted page",
"type": "string"
}
},
"required": [
"deleted"
],
"type": "object"
}
},
{
"description": "Fetch the canonical Markdown source of a page. Public and unlisted pages are open to anyone; private pages require the owner's lp_ API key.",
"inputSchema": {
"properties": {
"slug": {
"description": "The document slug — the path part of its https://lucid.page/<slug> URL.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_doc",
"outputSchema": {
"properties": {
"markdown": {
"description": "The canonical Markdown source of the page",
"type": "string"
},
"slug": {
"type": "string"
},
"version": {
"description": "Current version; pass as expected_version to update_doc",
"type": "integer"
}
},
"required": [
"slug",
"markdown"
],
"type": "object"
}
},
{
"description": "Show the lucid.page account matrix (anonymous vs lp_ API key) and, when a key is present, the caller's current plan status.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "get_limits",
"outputSchema": {
"properties": {
"account": {
"description": "Present when an lp_ API key was supplied",
"properties": {
"accountId": {
"type": "string"
},
"activeSubscription": {
"type": "boolean"
},
"plan": {
"description": "free | pro | team",
"type": "string"
}
},
"required": [
"accountId",
"plan",
"activeSubscription"
],
"type": "object"
},
"plans": {
"description": "Account matrix: anonymous, with_api_key, pro_team",
"type": "object"
}
},
"required": [
"plans"
],
"type": "object"
}
},
{
"description": "List the documents owned by the authenticated account (requires an lp_ API key), newest first, with cursor pagination.",
"inputSchema": {
"properties": {
"cursor": {
"description": "The nextCursor value from a previous call.",
"type": "string"
},
"limit": {
"description": "Max documents to return (1-200, default 50).",
"type": "integer"
}
},
"type": "object"
},
"name": "list_docs",
"outputSchema": {
"properties": {
"docs": {
"items": {
"properties": {
"expires_at": {
"type": [
"string",
"null"
]
},
"slug": {
"type": "string"
},
"title": {
"type": [
"string",
"null"
]
},
"updated_at": {
"type": "string"
},
"view_count": {
"type": "integer"
},
"visibility": {
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"type": "array"
},
"nextCursor": {
"description": "Pass as the cursor argument for the next page; null when the listing is exhausted",
"type": [
"string",
"null"
]
}
},
"required": [
"docs",
"nextCursor"
],
"type": "object"
}
},
{
"description": "Publish Markdown as a beautifully typeset page and receive its https://lucid.page/<slug> URL. Works anonymously; with an lp_ API key the page is owned by the account and can be updated later. Anonymous publishes return a one-time claim_token — hand your human the claim link https://lucid.page/claim?slug=<slug>&token=<claim_token> so they can claim the page into their account (agents: POST /api/docs/<slug>/claim).",
"inputSchema": {
"properties": {
"markdown": {
"description": "The Markdown source to publish (max 1 MB).",
"type": "string"
},
"title": {
"description": "Optional display title.",
"type": "string"
},
"ttl": {
"description": "Lifetime in seconds (min 60). Omit for a page that never expires.",
"type": "integer"
},
"visibility": {
"description": "Defaults to unlisted. Private requires an lp_ API key.",
"enum": [
"private",
"unlisted",
"public"
],
"type": "string"
}
},
"required": [
"markdown"
],
"type": "object"
},
"name": "publish_doc",
"outputSchema": {
"properties": {
"claim_token": {
"description": "One-time ownership token (anonymous publishes only). A human claims the page at https://lucid.page/claim?slug=<slug>&token=<claim_token>; agents claim with POST /api/docs/<slug>/claim.",
"type": "string"
},
"expires_at": {
"description": "ISO timestamp, or null when the page never expires",
"type": [
"string",
"null"
]
},
"slug": {
"type": "string"
},
"url": {
"description": "The live page URL.",
"type": "string"
},
"visibility": {
"enum": [
"private",
"unlisted",
"public"
],
"type": "string"
}
},
"required": [
"slug",
"url",
"visibility",
"expires_at"
],
"type": "object"
}
},
{
"description": "Replace the Markdown of a page you own (requires an lp_ API key). The URL stays the same; every update is kept as a revision. Pass expected_version (from get_doc) to guard against overwriting someone else's changes — a conflict returns 409 with current_version.",
"inputSchema": {
"properties": {
"expected_version": {
"description": "Optional optimistic-lock guard: the version you last read. Saves only if it still matches.",
"type": "integer"
},
"markdown": {
"description": "The new Markdown source (max 1 MB).",
"type": "string"
},
"slug": {
"description": "The document slug — the path part of its https://lucid.page/<slug> URL.",
"type": "string"
},
"title": {
"description": "Optional new title; omit to keep the current one.",
"type": "string"
}
},
"required": [
"slug",
"markdown"
],
"type": "object"
},
"name": "update_doc",
"outputSchema": {
"properties": {
"revision_hash": {
"description": "Content hash of the new revision",
"type": "string"
},
"slug": {
"type": "string"
},
"url": {
"type": "string"
},
"version": {
"description": "Monotonic save counter; pass as expected_version next time",
"type": "integer"
},
"visibility": {
"type": "string"
}
},
"required": [
"slug",
"revision_hash",
"visibility",
"url"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:b08a89d19812e89898f4fd9154ae2a7df4f0d9c3f902888284667bacd560d6cf | sha256sum