MisarBlog MCP Server
This MCP server provides a comprehensive toolkit for managing a Misar.Blog account from any AI assistant, including:
Authentication: Secure browser login (no API key needed) or API key; check auth status.
Profile & Plan: View creator profile and upgrade plan details.
Article Management: Publish (immediate/scheduled, with visibility controls: public, subscribers, paid, private); draft; update title, body, tags; list articles by status (draft, published, scheduled, archived); get article by slug with full Markdown; search across Misar.Blog by keyword, tag, or author.
AI-Powered Content: Research topics for insights, sources, and outlines; generate SEO/AEO/GEO-optimized titles (5 with strategy hints); suggest titles from existing content; generate AI cover images.
Image Upload: Upload local images to the Misar.Blog CDN.
Series Management: List, create, and add articles to series at specific positions.
Engagement: List public comments; check follow status and follower counts; manage reactions (like, clap, bookmark).
Newsletter: List subscribers and issues; use prompts to draft new issues from recent content.
Analytics: Summary views, revenue, subscribers for custom periods (up to 365 days); performance reports with recommendations.
Prompts & Resources: Reusable workflows (drafting, SEO, newsletters) and read-only resources (profile, articles, drafts).
Agent Skills: Built-in skills for analytics reports, series planning, newsletter campaigns, promotion, publishing, and SEO optimization.
Allows Windsurf (by Codeium) to publish and manage blog posts, drafts, series, and analytics on Misar.Blog.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MisarBlog MCP ServerCreate a draft about AI blogging and suggest titles."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Misar.Blog MCP Server
Publish and manage articles, series, comments, reactions, newsletters, and analytics — from any AI assistant.
23 tools · 8 prompts · 5 resources · 6 agent skills
Works with Claude (Desktop, Code, and web), Cursor, VS Code, Windsurf, Cline, Zed, Gemini CLI, ChatGPT, and any other MCP-compatible client — over stdio or Streamable HTTP.
Install
Smithery (recommended)
npx -y @smithery/cli install misar/misarblog-mcp --client claudeClaude Code
claude mcp add misarblog -- npx -y @misarblog/mcp@latestManual (any client)
{
"mcpServers": {
"misarblog": {
"command": "npx",
"args": ["-y", "@misarblog/mcp@latest"],
"env": { "MISARBLOG_API_KEY": "mbk_your_key_here" }
}
}
}Ready-made configs for every client live in connectors/.
Remote (no install)
{
"mcpServers": {
"misarblog": {
"type": "streamable-http",
"url": "https://www.misar.blog/api/mcp",
"headers": { "Authorization": "Bearer mbk_your_key_here" }
}
}
}Related MCP server: WordPress MCP
Authentication
Two options — no copy-paste needed for the first:
Browser login. Start the server with no key and run the
logintool. It opens the Misar.Blog consent screen, you review the requested permissions, and the key is delivered straight back and saved to~/.misarblog/config.json.API key. Create one at https://www.misar.blog/dashboard/settings/api-keys and set
MISARBLOG_API_KEY.
Self-hosted instances: set MISARBLOG_BASE_URL.
Tools
Tool | Description |
| Show your current Misar.Blog plan, how much of each quota you have left, and what upgrading unlocks. |
| Get your Misar.Blog creator profile. |
| Get analytics summary (views, revenue, subscribers) for a time period. |
| List your articles on Misar.Blog. |
| Get a single article by slug, including full markdown content. |
| Publish a new article (or schedule it) on Misar.Blog. |
| Save an article as a draft on Misar.Blog (for review before publishing). |
| Update the title, body, or tags of an existing article or draft. |
| Search PUBLISHED articles across Misar.Blog by keyword, tag, or author — including other creators' work. |
| Research a topic and get AI-generated insights, sources, and a content outline. |
| Generate 5 SEO/AEO/GEO-optimized article titles from a topic or keyword prompt. |
| Generate 5 compelling, SEO-friendly article title options from your existing article content. |
| Generate a cover image using AI and upload it to the Misar.Blog CDN. |
| List all your series on Misar.Blog. |
| Create a new series to group related articles. |
| Add an existing article to a series. |
| Get the comment thread for an article. |
| Get follow status and follower count for a profile UUID. |
| Get your newsletter subscriber list. |
| Get your sent and scheduled newsletter issues. |
| Get reaction counts and your reactions for an article. |
| Add a reaction to an article. |
| Remove a specific reaction from an article. |
Prompts
Reusable workflows your client exposes as slash-commands.
Prompt | Description |
| Write a complete, SEO-optimised article draft and save it to Misar.Blog. |
| Audit an article for SEO/AEO/GEO and apply the improvements. |
| Draft a newsletter issue from recent published articles. |
| Generate article ideas grounded in what has and has not been covered. |
| Write platform-specific promotional captions for an article. |
| Generate and rank stronger headline options for an article. |
| Plan a multi-part article series and set it up on Misar.Blog. |
| Summarise blog performance and recommend what to do next. |
Resources
Read-only context an agent can attach without spending a tool call.
URI | Description |
| Your Misar.Blog profile — username, display name, bio, and payout status. |
| Your 20 most recent published articles. |
| Your unpublished drafts, so work in progress can be resumed rather than restarted.. |
| Your series and the articles in each, in order.. |
| Views, revenue, and subscriber counts for the last 30 days — the baseline for any performance question.. |
Agent skills
Bundled in skills/ — guidance an agent loads when a task matches.
Skill | Use when |
| Report on Misar.Blog performance — views, revenue, subscribers, engagement. Use for "how is my blog doing", traffic reports, or content performance analysis. |
| Plan and manage a multi-part article series on Misar.Blog. Use for "series", "multi-part", "part 2", or organising related posts into a sequence. |
| Draft and review Misar.Blog newsletter issues and subscriber performance. Use for "newsletter", "email my subscribers", or newsletter performance questions. |
| Write platform-specific promotional copy for a Misar.Blog article. Use for "share this post", "social caption", "promote my article", or writing X/LinkedIn/Reddit copy. |
| Write, draft, and publish an article on Misar.Blog. Use when the user wants to write a post, publish an article, save a draft, or turn notes into a blog post. |
| Audit and improve an existing Misar.Blog article for SEO, AEO, and AI-answer-engine citability. Use for "improve SEO", "why isn't this ranking", "meta description", or "optimise for AI search". |
Safety
Destructive and irreversible actions are annotated (destructiveHint) so
clients can prompt before running them. The skills instruct agents to confirm
before anything that sends mail, publishes content, or is otherwise visible to
other people.
Discovery (initialize, tools/list, prompts/list, resources/list)
never requires credentials, so registries can index the server without one.
Every action does.
Links
Website — https://www.misar.blog
App — https://www.misar.blog
Documentation — https://docs.misar.io/blog/mcp
MIT © Misar AI
Available Tools
26 toolsadd_reactionAdd a reactionAIdempotentInspect
Record one reaction — like, clap, or bookmark — from the authenticated account on an article.
This acts publicly as the account holder, so only call it when the user has actually asked to react; do not react on their behalf to be helpful. Adds a single type per call — react twice for two types.
Safe to repeat: if the reaction already exists the call succeeds and changes nothing, so it will not double-count. Requires an API key. Use remove_reaction to undo, and get_reactions to see the resulting totals.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Which reaction to add: 'like' approval, 'clap' stronger approval, 'bookmark' save for later. | |
| article_id | Yes | UUID of the article to react to, from the `id` field of article tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, and the description reinforces this by stating the call is safe to repeat and won't double-count. It adds context about acting publicly as the account holder and requiring an API key, which goes beyond annotations. However, it doesn't detail the response format or any rate limits, but with annotations covering idempotency and non-destructiveness, the description adds sufficient value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three short paragraphs that are front-loaded with the core action. Every sentence adds value: the first states the action, the second provides usage guidance, and the third covers idempotency and related tools. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no nested objects), the description is complete. It covers the action, usage constraints, idempotency, and related tools. The only minor gap is not describing the response format, but since there's no output schema, the description could have mentioned it, but it's not critical for a simple mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds minimal extra meaning beyond the schema, but it does clarify the 'type' enum values in the schema itself. The description doesn't add new parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool records a reaction (like, clap, or bookmark) from the authenticated account on an article. It distinguishes from siblings by explicitly naming remove_reaction and get_reactions, and the verb 'record' plus resource 'reaction' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: only call when the user has actually asked to react, not on their behalf. It also explains the single-type-per-call behavior and names alternatives (remove_reaction, get_reactions) for related actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_to_seriesAdd an article to a seriesAIdempotentInspect
Place an existing article into an existing series, optionally at a specific position.
Both the series and the article must already exist — this creates neither. Identify them by SLUG, not id: get_series supplies the series slug and the article tools supply the article slug. Omit position to append at the end.
Requires an API key. Adding an article does not change its publication status or URL; it only changes where it appears. Inserting at a position shifts the articles after it down. Errors if either slug is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| position | No | 1-based position within the series. Omit to append at the end. Inserting shifts later articles down. | |
| series_slug | Yes | Slug of the target series, from get_series. Not its title or id. | |
| article_slug | Yes | Slug of the article to add, from list_my_articles. Not its title or id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral details beyond the annotations: it notes API key requirements, that adding does not change publication status or URL, that insertion shifts later articles down, and that unknown slugs cause errors. These are important operational traits not captured by the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core operation, and every sentence carries useful information. It covers prerequisites, identifier sourcing, optional positioning, side effects, and error behavior without redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating relationship-assignment tool with three parameters and no output schema, this description is complete: it covers prerequisites, authentication, how to get inputs, insertion semantics, side effects, and error conditions. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already provides detailed descriptions for series_slug, article_slug, and position, including the append behavior and shifting semantics. The description reinforces the same information but adds little new parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Place an existing article into an existing series') that clearly identifies the operation and its resources. It also distinguishes itself from creation tools by explicitly stating 'this creates neither'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context: both the series and article must already exist. It also directs the agent to get_series and article tools for slugs, and explains the optional position behavior ('Omit position to append at the end').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_draftCreate a draftAInspect
Save an article as an unpublished draft.
Nothing becomes visible to readers: use this whenever the work still needs review, and publish_article only when it should go live. The draft can be edited afterwards with update_article.
Each call creates a NEW draft — not idempotent, so calling twice leaves two drafts. Requires an API key. Returns the draft with an editor_url for finishing it in the browser.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Topic tags to carry through to publication. | |
| title | Yes | Working headline. Can be changed before publishing. | |
| body_markdown | Yes | Article body so far, as Markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: it spells out the non-idempotence consequence ('calling twice leaves two drafts'), assures that 'nothing becomes visible to readers,' requires an API key, and mentions the return value with an editor_url. These go beyond the flags in annotations and provide meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tightly written sentences: first sentence states purpose, second provides usage guidance, third discloses behavior. It is front-loaded, free of fluff, and every sentence carries meaningful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation, the description covers purpose, usage, non-idempotence, auth, and return value. It does not specify the full response shape or error behaviors, but with no output schema and simple parameters, this is nearly complete. A brief note on the returned draft object would earn a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% parameter coverage with detailed descriptions (e.g., 'Working headline. Can be changed before publishing.'). The description adds no additional parameter-level information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Save an article as an unpublished draft,' a specific verb+resource+state combination. It explicitly distinguishes itself from sibling tools by mentioning publish_article and update_article, making it clear this is for the draft stage only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'use this whenever the work still needs review, and publish_article only when it should go live.' It also states that the draft can be edited with update_article, clearly delineating the tool's role among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_seriesCreate a seriesAInspect
Create a new, empty series — a named collection that related articles can be added to.
Creating the series does not move any article into it; follow up with add_to_series for each one. Call get_series first to avoid making a second series with the same title, since each call creates a NEW series and nothing deduplicates them.
Requires an API key. The series and its URL become publicly reachable, though it shows nothing until articles are added. Returns the series with the slug that add_to_series needs.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Display name of the series. The slug is derived from this. | |
| description | No | Short summary shown on the series page. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses required API key, the public URL side effect, and that the series remains empty until articles are added. Also mentions the return value includes the slug needed by add_to_series, covering side effects and return behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: definition, usage guidance, and side effects/return. No redundant information or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers parameter definitions, the description augments with usage preconditions, side effects, and return value expectations, providing a complete context for using the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides complete descriptions for both parameters (title and description), including that the slug is derived from title. The tool description adds no extra parameter-specific details, so it remains at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new, empty series, which is a named collection for articles. It distinguishes itself from sibling tools like add_to_series and get_series by focusing on the creation aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling get_series first to avoid duplicate series, and notes that each call creates a new series without deduplication. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_cover_imageGenerate a cover imageAInspect
Generate an image from a text prompt with AI, upload it to the Misar.Blog CDN, and return its public URL for use as cover_image_url when publishing.
Use it when no artwork exists yet; use upload_image for a file the user already has. Each call generates a NEW image and costs generation credits against the account's plan — it is not idempotent, so re-running to 'try again' bills again. Generation takes noticeably longer than other tools.
Requires an API key. The resulting URL is public and cannot be deleted through this server. Results vary between runs for the same prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Output dimensions: '1792x1024' landscape (the default, best for article covers), '1024x1024' square, '1024x1792' portrait. | 1792x1024 |
| prompt | Yes | What the image should show, in plain language, up to 1000 characters. Describe subject and style; avoid asking for text in the image. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing: generation costs credits, is not idempotent, takes longer than other tools, requires an API key, produces a public non-deletable URL, and yields varying results. This adds critical context for a state-changing tool with financial implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet information-dense. Each sentence adds value: purpose, usage, side effects, and limitations. No redundant phrases or filler—perfectly structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generative, cost-incurring tool with no output schema, the description covers all essential context: output (public URL), prerequisites (API key), side effects (cost, non-deletion, variability), and performance expectations. Very complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters (prompt and size). The description adds no parameter-specific information beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Generate an image from a text prompt with AI, upload it to the Misar.Blog CDN, and return its public URL for use as cover_image_url when publishing.' It names specific verbs and the resource, and explicitly contrasts with upload_image, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use it when no artwork exists yet; use upload_image for a file the user already has.' It also notes cost implications and non-idempotency, helping the agent decide based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_title_seoGenerate SEO titles from keywordsARead-onlyInspect
Generate 5 search-optimised article titles from a TOPIC OR KEYWORD, each with a keyword-strategy hint. Aims at high-volume, low-competition long-tail phrases and at AI answer engines (ChatGPT, Perplexity, Claude) as well as Google.
Pick between the two title tools by what you have in hand: use this one when you have a topic or keywords and the article may not be written yet. Use suggest_titles when the draft already exists and you want titles drawn from its actual text. Passing context here does not make them equivalent — this one still optimises for the keywords you supply.
Nothing is saved and no article is created or retitled; use update_article to apply a title. Requires an API key and consumes AI credits per call. Generative, so repeated calls return different titles.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Topic or target keywords, 3-500 characters. Include niche, audience and any long-tail phrase you want to rank for, e.g. 'best AI writing tools for beginner bloggers 2025'. | |
| context | No | Optional draft text (plain or Markdown, up to 8000 chars) so the titles match what the article actually says. Titles still follow `prompt` for keywords. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it states nothing is saved, no article is created or retitled, requires an API key and consumes credits, and notes the generative nature (repeated calls return different titles), which aligns with idempotentHint=false and openWorldHint=true. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured in three clear paragraphs: function, usage distinction, and side effects. Every sentence earns its place, and it is appropriately concise for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description provides complete guidance: what it generates, how it differs from a sibling, prerequisites, side effects, and the fact it's generative. It fully covers the agent's needs for correct invocation and expectation setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the baseline is 3. The description adds extra nuance by clarifying that passing context does not make the tool equivalent to suggest_titles—titles still optimize for the supplied keywords. This goes beyond the schema's description of context, providing semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates 5 search-optimised article titles from a topic/keyword, each with a keyword-strategy hint. It explicitly distinguishes this from suggest_titles by noting it works from topics/keywords rather than existing drafts, making the purpose unambiguous and differentiated from its sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'use this one when you have a topic or keywords and the article may not be written yet' and contrasts it with suggest_titles for existing drafts. It also clarifies that passing context does not make it equivalent and notes prerequisites (API key, credits) and the need to call update_article to apply a title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analytics_summaryGet analytics summaryARead-onlyIdempotentInspect
Summarise the account's performance over a trailing window: page views, gross and net revenue, and active subscriber count.
Use it for 'how did I do this month' style questions. These are whole-account totals — it cannot break results down per article, and it covers a trailing window ending today rather than an arbitrary date range.
Reads only. Requires an API key. Revenue is returned in cents (revenue_cents gross, revenue_net_cents after fees) with a formatted revenue_usd added for convenience — read the cents fields when doing arithmetic. Zero views is a real answer, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Size of the trailing window in days, ending today. 1-365, defaults to 30. Use 7 for a week, 365 for a year. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Beyond this, the description adds important context: requires an API key, revenue is in cents with a formatted USD convenience field, and zero views is a real answer not an error. These go well beyond the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into three short paragraphs with each sentence earning its place: purpose, usage, then caveats. It is front-loaded with the main function and avoids redundancy, even while covering edge cases like units and zero views.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain return values, and it does: page views, gross/net revenue in cents, a formatted USD field, and active subscriber count. It also covers prerequisites (API key) and edge-case semantics (zero views). For a one-parameter read-only tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter (days), which already specifies the trailing window, range, default, and usage examples. The description mentions the trailing window but does not add new parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Summarise the account's performance over a trailing window: page views, gross and net revenue, and active subscriber count.' It clearly distinguishes from siblings by noting these are whole-account totals and cannot be broken down per article, contrasting with tools like get_article or search_articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Use it for 'how did I do this month' style questions.' It also states exclusions: cannot break results down per article and only covers a trailing window ending today rather than an arbitrary date range, ruling out alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleGet one articleARead-onlyIdempotentInspect
Fetch a single article by slug, including its full Markdown body.
Use this after list_my_articles or search_articles has given you a slug and you need the actual content — for reading, editing, or repurposing it. Fetching one article at a time is deliberate: the listing tools omit bodies so they stay cheap.
Reads only; nothing is created or modified. Requires an API key for unpublished articles; published ones are readable without. Returns the article object with content_markdown populated. Errors if the slug does not exist or the account cannot see it.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | URL slug of the article, e.g. 'how-we-cut-build-times'. Not the numeric id, and not the full URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite readOnlyHint already being provided, the description adds valuable context: API key requirement for unpublished articles, published ones readable without, and error conditions. This goes beyond annotations and matches the tool's actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though slightly verbose with four sentences, each sentence contributes context: purpose, usage, behavior, auth, errors. It is front-loaded with the core action and not redundant given the added info beyond annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers all critical aspects: what it does, when to use it, read-only nature, auth requirements, return content, and failure modes. It is essentially complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes 'slug' with explanation and example, and the description adds no new parameter-level detail. Baseline of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch a single article by slug') and distinguishes it from listing tools that omit bodies, making it unambiguous and aligned with its sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use the tool ('after list_my_articles or search_articles has given you a slug') and explains the rationale for fetching one at a time, clearly contrasting with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_follow_statusGet follow statusARead-onlyIdempotentInspect
Check whether the authenticated account follows a given profile, and how many followers that profile has.
Use it before offering to follow someone, so you do not suggest an action that is already done. It answers about ONE profile identified by UUID — there is no tool here that lists everyone you follow.
Reads only; following state is not changed. Requires an API key and counts against the plan's request quota. Returns the follow relationship and follower count. Errors if the UUID does not match a profile.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | UUID of the profile to check, as returned in author fields by article tools. Not the username. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only, does not change follow state, counts against quota, and errors on invalid UUID. These details go beyond the annotations to set accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence and provides necessary context without excessive verbosity. It is well-structured with clear statements, though slightly longer than strictly needed for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the returned information (follow relationship and follower count) and error conditions, making it complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter schema already includes a detailed description for 'user_id'. The tool description reinforces that it identifies a single profile and clarifies the UUID format, adding contextual usage. This slightly exceeds the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks follow status and follower count for a single profile, distinguishing it from sibling tools that list or manage follows. It uses specific verbs and identifies the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using the tool before offering to follow someone to avoid redundant actions, and clarifies it handles one profile rather than listing all followed profiles. This differentiates it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet my profileARead-onlyIdempotentInspect
Fetch the authenticated account's own creator profile: id, username, display name, bio, public profile URL, and whether Stripe payouts are connected.
Use it to confirm which account a key belongs to before acting on that account's behalf, to get your own profile id for tools that take a UUID, or to check stripe_connected before discussing paid posts. It only ever describes the caller — there is no tool here for looking up someone else's profile.
Reads only; nothing is modified. Requires an API key, and takes no parameters. Errors if the key is missing or invalid, which is the quickest way to test authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description doesn't need to restate safety. It adds value by mentioning it requires an API key, takes no parameters, and errors on missing/invalid key, which are behavioral details beyond annotations. Not a full 5—could mention response format or exactly when stripe_connected is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, front-loaded with the core action and output fields. It includes necessary usage context and a parenthetical limitation, but the second half could be trimmed slightly; still, every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool, the description is complete: it specifies the exact purpose, the fields returned, use cases, limitations, and authentication behavior. With no output schema, the description fully conveys what the agent gets back. Sibling context shows it fits well among a broader set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters, so the description needn't explain parameters. However, it effectively communicates that no parameters are needed and explains the output fields, providing semantic value for what the tool returns. A baseline of 4 is appropriate since params are 0.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches the authenticated account's own creator profile, listing specific fields (id, username, display name, bio, public profile URL, stripe_connected). It distinguishes itself from siblings by explicitly noting there is no tool for looking up others' profiles, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases: confirming which account a key belongs to, getting own profile id for tools requiring UUID, checking stripe_connected before discussing paid posts. Also clarifies when not to use it (for others' profiles) and states it can be used to test authentication via errors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reactionsGet article reactionsARead-onlyIdempotentInspect
Read the reaction totals on one article, plus which reactions the authenticated account has left on it.
Use it before add_reaction or remove_reaction so you know the current state — it is how you tell 'not yet liked' from 'already liked'. Covers one article at a time.
Reads only; no reaction is added or removed. Requires an API key. Returns counts per type (like, clap, bookmark) alongside the caller's own reactions. Zero counts are a real answer, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes | UUID of the article, from the `id` field returned by article tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it is read-only, reinforcing the annotations (readOnlyHint, idempotentHint, destructiveHint: false). It adds context that no reaction is added or removed, requires an API key, returns counts per type, and clarifies that zero counts are valid answers. It goes beyond annotations by mentioning API key requirement and response semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, opening with the core function. It uses bullet-like sentences with no filler, and every sentence adds value—usage guidance, read-only reassurance, and zero-count clarification. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low parameter count, high schema coverage, and robust annotations, the description is quite complete. It provides usage context, response expectations, and authentication note, but doesn't explain the output schema (though none exists). The only minor gap is not detailing exact response format, but that is not required given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with a description for article_id (UUID from article tools). The description adds the context that the tool returns the caller's own reactions and counts, but does not add much parameter-specific info beyond what's in the schema. Since schema coverage is high and the parameter is simple, the baseline of 3 gets a slight bump for confirming usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads reaction totals on one article and which reactions the authenticated account has left, specifying the scope ('one article at a time'). It distinguishes itself from sibling tools like add_reaction and remove_reaction by focusing on reading current state rather than mutating it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly advises using this tool before add_reaction or remove_reaction to determine current state ('not yet liked' vs 'already liked'), and notes it covers one article at a time. This gives clear guidance on when to use it and how it fits with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_seriesList my seriesARead-onlyIdempotentInspect
List every series the authenticated account owns. Despite the name this returns the whole collection, not one series — there is no single-series lookup.
Use it to find a series slug before calling add_to_series, or to check whether a series already exists before create_series makes a duplicate.
Reads only; nothing is created or modified. Requires an API key, and takes no parameters — it is unfiltered and unpaginated. Returns { series, total } where each entry carries id, slug, title, description, url and article_count. An empty list means the account has no series yet, which is not an error.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds rich behavioral context: it requires an API key, is unfiltered and unpaginated, returns a specific structure `{ series, total }` with detailed per-entry fields, and defines empty-list semantics ('not an error'). This goes well beyond the annotations and fully discloses behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise despite containing multiple pieces of information. Each sentence serves a purpose: purpose, clarification of name, use cases, behavioral details, and return format. It is front-loaded with the main action and flows logically. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description goes beyond the minimum by defining the exact return shape and edge-case behavior (empty list). It also covers authentication, rendering it fully self-contained. The agent has everything needed to select and invoke the tool without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters (100% coverage). Baseline for zero params is 4, but the description adds valuable context by stating 'takes no parameters — it is unfiltered and unpaginated.' This explicitly prevents the agent from attempting to pass filters or pagination, which is meaningful for correct invocation. Thus it exceeds the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List every series the authenticated account owns.' It further distinguishes itself from a single-series lookup by explicitly noting that despite the name, it returns the whole collection and that there is no single-series lookup. This clearly differentiates from sibling tools like create_series and add_to_series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use it to find a series slug before calling add_to_series, or to check whether a series already exists before create_series makes a duplicate.' It also clarifies the read-only nature, telling the agent it can be safely used for lookups without side effects. No exclusions are needed, making this highly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsList article commentsARead-onlyIdempotentInspect
Read the comment thread on one article, oldest first, paginated.
Use it to review reader feedback or summarise a discussion. It reads comments only; there is no tool here for posting or moderating a reply.
Reads only. Requires an API key and counts against the plan's request quota. Page through with limit and offset — the default returns the first 20. Returns the comments with their authors and timestamps; an empty list simply means no comments yet, which is not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Comments per page, 1-100. Defaults to 20. | |
| offset | No | Comments to skip before this page. Defaults to 0. | |
| article_id | Yes | UUID of the article, as returned in the `id` field by article tools. Not the slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring readOnlyHint=true and destructiveHint=false, the description adds significant value: API key requirement, quota consumption, pagination behavior, response shape, and the useful disambiguation that an empty list is not an error. These behavioral details go well beyond what the annotations communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, use case, and error semantics. Front-loaded with the most important information first. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 3 params and no output schema, the description is thorough: it covers ordering, pagination, auth, quota, response contents, and error handling. The context is fully provided within the description and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. The description adds marginal value by framing limit/offset as a pagination workflow ('Page through with limit and offset') and reiterating the default of 20, which reinforces the conceptual model even though the schema documents the parameters thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Read the comment thread on one article, oldest first, paginated' uses a specific verb (read), specific resource (comment thread on one article), and adds scope (one article) plus ordering (oldest first). This clearly distinguishes it from sibling tools like get_reactions or get_article, and the explicit 'It reads comments only; there is no tool here for posting or moderating' further differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('Use it to review reader feedback or summarise a discussion') and when not to ('reads comments only; there is no tool here for posting or moderating a reply'). This gives clear when/when-not guidance without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_articlesList my articlesARead-onlyIdempotentInspect
List articles owned by the authenticated account, newest first, including drafts and scheduled posts.
Use this to find your own work — it is the only listing that sees unpublished content. To search across the whole site, including other creators, use search_articles instead.
Reads only; nothing is created or modified. Requires an API key. Returns { articles, total }, where each article carries id, slug, title, status, url, editor_url, tags and timestamps, but NOT the article body — call get_article for that. total counts all matches, not just the page returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum articles to return, 1-100. Defaults to 20. | |
| status | No | Return only articles in this state. Omit to return every state the account owns. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds valuable context beyond annotations: requires an API key, returns a specific shape with fields, notably excludes the article body, and clarifies that 'total' counts all matches, not just the returned page. This goes beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose+scope, when to use, read-only reassurance/auth, and return shape with a key exclusion. Information-dense without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though no output schema exists, the description fully covers the return structure, field list, the notable absence of body content, and pagination/authentication details. For a list tool with two optional parameters and strong annotations, this is complete enough for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully with descriptions, giving a baseline of 3. The description adds meaning by clarifying default status behavior ('including drafts and scheduled posts' when status omitted) and pagination semantics ('total counts all matches, not just the page returned'). This compensates beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'List' with a clear resource: 'articles owned by the authenticated account'. It immediately distinguishes from siblings by noting it is 'the only listing that sees unpublished content' and explicitly contrasts with search_articles, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this to find your own work' and names the alternative: 'To search across the whole site, including other creators, use search_articles instead.' Also directs users to get_article for body content, covering exclusions and alternatives clearly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_newsletter_issuesList newsletter issuesARead-onlyIdempotentInspect
List newsletter issues the account has sent or scheduled, newest first.
Use it to check what went out and when, or to confirm a scheduled send exists before queueing another. For WHO receives them, use list_newsletter_subscribers.
Reads only — this neither sends nor cancels an issue. Requires an API key. Returns each issue with its subject, status and send time. An empty list means nothing has been sent yet, which is not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Issues to return, 1-50, newest first. Defaults to 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, but the description adds valuable context: it states this neither sends nor cancels an issue, requires an API key, returns subject/status/send time, and clarifies that an empty list is not an error. This goes well beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: main purpose first, then use cases, alternative tool, read-only note, auth requirement, return contents, and empty-list clarification. Every sentence contributes meaningful information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one optional parameter, the description is complete: it covers what is returned, when to use it, the alternative tool, auth needs, and edge-case behavior. The absence of an output schema is compensated by the explicit mention of returned fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single 'limit' parameter with range, default, and ordering semantics, so schema coverage is 100%. The description does not add parameter-specific detail, but the schema already carries the full burden, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('newsletter issues') and scope ('sent or scheduled, newest first'). It also distinguishes itself from the sibling tool list_newsletter_subscribers by explicitly stating it covers issues, not recipients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases: checking what went out and when, and confirming a scheduled send before queueing another. It also explicitly names the alternative tool for recipient-related queries, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_newsletter_subscribersList newsletter subscribersARead-onlyIdempotentInspect
List the people subscribed to the authenticated account's newsletter, paginated.
Use it to size the audience or export the list. For what has been SENT to them, use list_newsletter_issues instead.
Reads only — no email is sent and no subscriber is added or removed. Requires an API key. This returns personal data (email addresses), so treat the result as confidential and do not echo it into shared transcripts. Page with limit and offset; the default returns the first 20.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Subscribers per page, 1-100. Defaults to 20. | |
| offset | No | Subscribers to skip before this page. Defaults to 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations: it states that no email is sent, no subscriber is added/removed, and that it returns personal data requiring confidentiality. The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description reinforces and adds the privacy warning, which is valuable. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear first sentence stating the purpose, followed by usage guidance, safety/privacy notes, and pagination details. Every sentence adds value, and it's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, no output schema, no nested objects), the description covers all necessary aspects: purpose, usage, safety, privacy, and pagination. It's complete for an agent to use correctly without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (limit and offset) with defaults and ranges. The description mentions pagination with limit and offset and the default of 20, but doesn't add much beyond the schema. Since schema coverage is 100%, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists newsletter subscribers for the authenticated account, with pagination. It distinguishes itself from the sibling tool list_newsletter_issues by explicitly noting the difference between subscribers and sent issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool (to size audience or export list) and when not to (for sent issues, use list_newsletter_issues). It also mentions the requirement of an API key and the read-only nature, which helps the agent decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginLog in via browserAInspect
Connect a Misar.Blog account by browser consent, with no API key to copy and paste.
Use it when status reports no key, or when a tool fails as unauthenticated. It opens the authorisation page in the user's browser, waits for them to review the permissions and click Authorize, then stores the returned key in ~/.misarblog/config.json.
Two things to know before calling it. It BLOCKS until a human acts in the browser, so it can hang for as long as they take — never call it speculatively or in a retry loop. And force=true ROTATES the key, invalidating the existing one everywhere else it is used; without force, an already-valid session returns immediately and changes nothing. It listens on a short-lived local port to receive the callback.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Local port for the one-shot callback listener, 9001-9099. Random by default; set it only when a firewall requires a fixed port. | |
| force | No | Re-authenticate even when already logged in. This ROTATES the API key and breaks any other client using the old one — only on explicit request. | |
| base_url | No | Base URL of a self-hosted Misar.Blog. Omit for the hosted service. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that the tool BLOCKS until human action, that force=true ROTATES and invalidates existing keys, that an existing valid session returns immediately without changes, and that it listens on a short-lived local port. These are critical behavioral traits. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence purpose, then usage conditions, then critical warnings. Each paragraph earns its place, and nothing is redundant with the schema. The entry is moderately long but all pieces are necessary for safe invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the success flow, key storage location, blocking behavior, force semantics, port selection, and base_url handling. It does not explicitly state what happens if the user cancels or fails to respond, nor the exact return value format, but the absence of an output schema makes this a minor gap. Overall the agent has enough context to invoke the tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though the schema already provides 100% parameter coverage, the description adds behavioral nuance: force=false does not change anything if already authenticated, the port is where the short-lived callback listener runs, and base_url should be omitted for the hosted service. This enriches the schema's semantic values rather than just repeating parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Connect a Misar.Blog account by browser consent', specifying the verb, resource, and unique method. This distinguishes it from all sibling tools, which are post-reading/publishing/analytics operations, not authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions: 'Use it when status reports no key, or when a tool fails as unauthenticated.' It also gives strong when-not-to-use guidance: 'never call it speculatively or in a retry loop.' No alternatives are named, but no other sibling provides this function, so the guidance is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_articlePublish an articleAInspect
Create a new article and make it live immediately, or schedule it for a future time.
This PUBLISHES: without schedule_at the article is world-readable the moment this returns, at the visibility you choose. If the piece is not ready, use create_draft instead and publish later. Each call creates a NEW article — it is not idempotent, so calling twice publishes twice; use update_article to change one that exists.
Requires an API key and consumes one publish from the account's plan quota; the response warns when the allowance is nearly spent. Returns the created article with its public url and editor_url.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Up to 10 topic tags used for discovery and filtering. | |
| title | Yes | Headline, 1-250 characters. | |
| visibility | No | Audience: 'public' anyone, 'subscribers' newsletter subscribers, 'paid' paying members, 'private' only you. Defaults to 'public'. | public |
| schedule_at | No | ISO 8601 timestamp to publish at, e.g. '2026-09-01T09:00:00Z'. Omit to publish immediately. A past timestamp publishes immediately. | |
| body_markdown | Yes | Complete article body as Markdown. Images may be referenced by URL. | |
| cover_image_url | No | Absolute URL of the hero image. generate_cover_image returns a URL suitable here. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: it publishes immediately (world-readable), is not idempotent (calling twice publishes twice), requires an API key, consumes quota, and warns when allowance is nearly spent. It also mentions the return value includes public url and editor_url. This adds significant context beyond the annotations (readOnlyHint=false, idempotentHint=false) and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it opens with the core action, then explains key behaviors in a clear paragraph, and ends with return value. Every sentence adds value, and it is front-loaded with the most important information. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 params, scheduling, visibility, non-idempotency, quota), the description is complete. It covers the main use cases, side effects, prerequisites (API key), and return value. The schema covers parameter details, and the description adds the behavioral context needed for correct invocation. No output schema exists, but the description mentions the return fields, so the agent knows what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by explaining the effect of schedule_at (omit to publish immediately, past timestamp publishes immediately) and the visibility options, which are not fully detailed in the schema. It also mentions cover_image_url can come from generate_cover_image, linking to a sibling tool. This goes beyond the schema, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new article and makes it live immediately or schedules it, with a specific verb ('Create') and resource ('article'). It distinguishes from siblings by explicitly contrasting with create_draft and update_article, and notes the non-idempotent behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: use create_draft if the piece is not ready, use update_article to change an existing article. It also explains the scheduling option and the immediate publication effect, giving clear context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_reactionRemove a reactionADestructiveIdempotentInspect
Withdraw one reaction the authenticated account previously left on an article.
Removes exactly the type you name and leaves the account's other reactions on that article intact — removing 'like' does not remove a 'bookmark'. Nothing else is deleted: the article and its comments are untouched.
Safe to repeat: removing a reaction that is not there succeeds and changes nothing. Requires an API key. Call get_reactions first if you need to know what is currently set.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Which reaction to withdraw: 'like', 'clap', or 'bookmark'. | |
| article_id | Yes | UUID of the article to un-react to, from the `id` field of article tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint, idempotentHint), the description adds crucial behavioral details: it specifies that only the named reaction type is removed, other reactions remain intact, nothing else is deleted, and calling with a non-existent reaction is a no-op. This enriches the annotation-provided hints without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using three clear sentences. It fronts the core action, then elaborates on scope and side effects, and ends with practical guidance. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, no output schema, and strong annotations, this description fully covers the necessary context: it explains the tool's purpose, safety, idempotency, authentication requirement, and a recommended precondition (get_reactions). It is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters (100%), so the baseline is 3. The description adds value by clarifying that the 'type' parameter is specific to the exact reaction being removed, and that removing one type does not affect others. It also reinforces the purpose of article_id in context, though it doesn't add new syntax or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: withdrawing a specific reaction from an article. It specifies the resource (reaction) and the action (withdraw/remove), and explicitly differentiates from sibling tools like add_reaction and get_reactions by focusing on removal semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: it notes the need for an API key, advises calling get_reactions first when unsure of current reactions, and highlights the safe-to-repeat nature. This gives the agent clear context on when to use this tool and what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_topicResearch a topicARead-onlyInspect
Research a topic with AI and return insights, sources, and a suggested content outline.
Use it at the START of a piece, before drafting — it produces raw material to write from, not a finished article and not a title. For titles use generate_title_seo; to see what already exists on Misar.Blog use search_articles.
Nothing is saved: no draft, article, or file is created, and calling it has no effect on the blog. Requires an API key and consumes AI credits from the account's plan, so each call costs whether or not you use the output. Runs noticeably longer than a plain read, and being generative, two identical calls give different text. Returns prose to read, not structured JSON — verify any factual claims it makes.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The topic or question to research, 5-500 characters. Specific beats broad: 'how small SaaS teams price annual plans' returns more than 'pricing'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral detail: nothing is saved, it consumes AI credits and costs per call, runs noticeably longer than a plain read, produces non-deterministic results, and returns prose rather than structured JSON. This goes well beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then each subsequent sentence adds a distinct practical point: when to use, alternatives, side effects, cost, runtime, non-determinism, output format, and verification caveat. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generative, non-deterministic tool with no output schema, the description is remarkably complete. It covers return shape, side effects, cost, timing, determinism, and how to verify output, plus differentiates from sibling tools. This is more than sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `query` is fully documented in the schema, including length constraints and a concrete example of specificity. The description does not need to add much parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action verb and resource: 'Research a topic with AI and return insights, sources, and a suggested content outline.' It clearly distinguishes itself from siblings by stating it is not a finished article, not for titles (use generate_title_seo), and not for checking existing content (use search_articles).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use it at the START of a piece, before drafting.' It also names direct alternatives for related tasks and states that the tool produces raw material, not a finished article or title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesSearch published articlesARead-onlyIdempotentInspect
Search PUBLISHED articles across all of Misar.Blog, including other creators' work.
Use this for discovery, research, and competitive reading. It never returns drafts, scheduled, or private posts — not even your own — so reach for list_my_articles when you want your unpublished work.
Reads only. No API key required; unauthenticated callers are rate-limited by IP. Filters combine with AND. Returns an array of article summaries without bodies; pass a slug to get_article for the full text. An empty array means no matches, which is not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text query matched against title and body. Minimum 2 characters. | |
| tag | No | Restrict to articles carrying this exact tag. | |
| limit | No | Maximum results to return, 1-20. Defaults to 10. | |
| author | No | Restrict to one author, by username. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly annotation, the description details behavior: it is read-only, requires no API key (with IP rate-limit), filters combine with AND, returns summaries without bodies (directing to get_article for full text), and states that an empty array means no matches (not an error). This thoroughly discloses behavior and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but information-dense, structured with a clear purpose statement, usage guidance, and behavioral details. Every sentence adds value without redundancy, making it well-organized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's nature (read-only search), the description covers essential context: what it returns (summaries without bodies), how to get full text (via get_article), authentication requirements, rate limiting, and error semantics (empty array). It also points to the appropriate alternative for unpublished content, making it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Each parameter has a clear schema description (e.g., q matches title and body with min 2 chars, tag is exact, limit defaults to 10 and ranges 1-20, author is by username). The tool description adds the crucial interaction that filters combine with AND, enhancing semantic understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool searches published articles across all of Misar.Blog, including other creators' work, and clearly distinguishes it from list_my_articles by specifying it does not return drafts, scheduled, or private posts. This makes the purpose unambiguous and differentiates it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides direct usage guidance ('Use this for discovery, research, and competitive reading'), explains when not to use it (for unpublished work, pointing to list_my_articles), and mentions rate-limiting for unauthenticated callers, giving clear context on when and how to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusCheck authentication statusARead-onlyIdempotentInspect
Report whether this client holds a working Misar.Blog API key, and which account it belongs to.
Run it first when anything is failing with an auth error, and before a run of write operations, so you find out up front rather than midway. It distinguishes three states: no key stored, a key that is stored but rejected, and a valid key with its username. If it reports no key, run login.
Reads only; it never creates or rotates a key — login does that. Takes no parameters. Unlike most tools here it does not fail when unauthenticated: 'not authenticated' is a normal successful answer, not an error. For plan and quota, use upgrade; for the full profile, get_profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: it states the tool is read-only ('Reads only; it never creates or rotates a key'), clarifies that 'not authenticated' is a successful response rather than an error, and describes the three distinct states it distinguishes. This is rich detail beyond the readOnlyHint and idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, usage trigger with alternative, and behavioral disclosure. It is front-loaded with the core purpose and contains zero fluff. Every clause contributes actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is remarkably complete. It covers purpose, when to use, failure semantics (no-key state and login fallback), what it does not do (create/rotate keys), and how it differs from sibling tools (upgrade, get_profile). This fully equips an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which sets a baseline of 4. The description appropriately focuses on what the tool inspects (the stored key state) rather than parameters, and there is no schema detail to repeat. The description adds no parameter-specific meaning, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Report whether this client holds a working Misar.Blog API key, and which account it belongs to.' It uses a specific verb ('report') and resource ('Misar.Blog API key') and distinguishes it from siblings by explicitly referencing login, upgrade, and get_profile as alternatives for other actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Run it first when anything is failing with an auth error, and before a run of write operations.' It also gives a conditional action: 'If it reports no key, run `login`.' This clearly differentiates it from write operations and other auth-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_titlesSuggest titles from draft textARead-onlyInspect
Generate 5 title options FROM AN EXISTING DRAFT, derived from what the article actually says.
Pick between the two title tools by what you have in hand: use this one when the text exists and should drive the headline. Use generate_title_seo when you are starting from a topic or keyword, or want titles aimed at specific search terms — this tool takes no keyword input at all.
Nothing is saved and the article is not retitled; apply a choice with update_article. Requires an API key and consumes AI credits per call. Generative, so repeated calls return different titles. Needs at least 20 characters of text to work from.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | The article text to draw titles from, plain or Markdown, 20-8000 characters. More of the real draft yields better-fitting titles than a summary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint true, destructiveHint false), the description explicitly states that nothing is saved, the article is not retitled, and requires an API key with credit consumption. It also discloses the generative (non-deterministic) nature of the tool and the 20-character minimum, providing critical behavioral context that annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it leads with the core purpose, then explains usage differentiation, followed by side effects and constraints. Each sentence adds unique value, and no redundant or filler content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema) and strong annotations, the description fully covers what an agent needs to know: when to use it, what it returns (5 titles), that it is read-only and doesn't persist changes, cost implications, and the non-deterministic output. It also mentions the specific update_article tool to apply a title, covering the follow-up action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema description already fully explains the 'context' parameter (plain/Markdown, 20-8000 chars, and advice to use the full draft for better titles). The tool description repeats these points but adds no new parameter-level information that isn't already in the schema, so it meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate 5 title options FROM AN EXISTING DRAFT, derived from what the article actually says.' It specifies the exact deliverable (5 titles) and the input (existing draft). It also distinguishes itself from the sibling tool generate_title_seo by explaining when each should be used, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'use this one when the text exists and should drive the headline' and contrasts with generate_title_seo for keyword-driven scenarios. It also notes the tool 'takes no keyword input at all,' reinforcing the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_articleUpdate an articleAIdempotentInspect
Change the title, body, or tags of an article or draft that already exists.
Only the fields you pass are touched; omitted fields keep their current values. Passing tags REPLACES the whole tag list rather than adding to it, so send the full set you want. Editing a published article changes what readers see immediately; it does not unpublish or re-date it.
Safe to repeat: the same call twice leaves the same result. Requires an API key, and the account must own the article. Errors if no updatable field is supplied. Returns the updated article.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Article or draft id from a listing tool. This is the id, not the slug. | |
| tags | No | Replacement tag list, up to 10. Overwrites the existing tags entirely. | |
| title | No | Replacement headline. | |
| body_markdown | No | Replacement body as Markdown. Replaces the whole body, not a patch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds rich detail: partial update semantics, tags replacement behavior, immediate effect on published articles, API key/ownership requirements, and an error condition. This goes well beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with a front-loaded purpose statement, followed by behavioral details, then security/error/return info. Every sentence provides necessary information without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description states it 'Returns the updated article.' It also covers partial update behavior, tags replacement, published-article effects, idempotency, auth requirements, ownership, and an error condition. This is very complete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that only passed fields are touched (partial update) and that an error occurs if no updatable field is supplied. It reinforces the tags replacement meaning already in the schema but adds the partial-update context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change the title, body, or tags of an article or draft that already exists.' This uses a specific verb (change) and resource (existing article/draft), clearly distinguishing it from creation or publication tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying 'article or draft that already exists' and discusses effects on published articles, but it never explicitly names alternative tools (e.g., create_draft, publish_article) or states when NOT to use it. Context is clear but exclusions/alternatives are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgradeShow plan and quota, or upgradeAIdempotentInspect
Show the account's current plan, how much of each quota remains, and what a higher plan unlocks.
Called with no arguments it only reads — useful any time, not just after hitting a limit, and the natural follow-up when a write tool reports a quota error. Two arguments make it act rather than report, so pass them only on explicit instruction from the user: start_trial ENROLS the account in the free trial immediately (a real account change, not a preview), and open LAUNCHES a checkout page in the user's browser. Neither charges a card by itself.
Requires an API key. No billing state changes unless you pass start_trial; the returned quota snapshot already reflects a trial started in the same call. For whether you are authenticated at all, use status.
| Name | Required | Description | Default |
|---|---|---|---|
| open | No | Open the checkout page in the user's default browser. Side effect on their desktop — only when they asked to upgrade. | |
| plan | No | Plan slug to open, e.g. 'pro' or 'business'. Defaults to the recommended plan. Only meaningful with open=true. | |
| start_trial | No | Enrol in the free no-card trial now, if eligible. This changes the account's plan — do not set it speculatively. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds materially richer behavioral context: start_trial is a real account change, open launches a checkout page in the user's browser, neither charges a card by itself, an API key is required, and the returned quota snapshot already reflects a same-call trial. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, then explains usage, then covers safety and authentication. It is slightly longer than strictly necessary, with minor overlap between 'No billing state changes unless you pass start_trial' and 'Neither charges a card by itself,' but the length is justified given the tool's dual read/action nature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, three optional parameters, and no output schema, the description is remarkably complete. It covers default read behavior, what the read mode returns, when to use it, the side effects of both action arguments, API key requirements, trial behavior, and how it relates to the `status` sibling. An agent can safely decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the input schema has 100% description coverage, the baseline is 3. The description adds value by clarifying that passing either argument shifts the tool from reporting to acting, that these arguments should only be passed on explicit user instruction, and that plan defaults to the recommended plan. It reinforces safety-critical semantics without merely repeating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific purpose: 'Show the account's current plan, how much of each quota remains, and what a higher plan unlocks.' It clearly differentiates the no-argument read mode from the two-argument action mode, and the title reinforces this dual behavior. This distinguishes it from siblings like status, which is about authentication rather than plan/quota information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: called with no arguments it only reads and is 'useful any time, not just after hitting a limit,' and it is 'the natural follow-up when a write tool reports a quota error.' It explicitly warns that arguments should be passed 'only on explicit instruction from the user' and directs authentication questions to the sibling tool `status`, providing both when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_imageUpload a local imageAInspect
Upload an image file from the local filesystem to the Misar.Blog CDN and return its public URL.
Use it for images the user already has on disk; use generate_cover_image when the image does not exist yet. Available only when the server runs locally over stdio — the hosted endpoint cannot see your disk, so it does not offer this tool at all.
Reads the file and creates a NEW CDN object each call; uploading twice yields two URLs. Nothing on the filesystem is modified or deleted. Requires an API key. The resulting URL is public and undeletable through this server, so do not upload anything private. Accepts JPEG, PNG, WebP and GIF.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute path to the image on this machine, e.g. '/Users/me/cover.png'. JPEG, PNG, WebP or GIF; the type is inferred from the extension. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false), the description discloses that each call creates a new CDN object, the URL is public and undeletable, and nothing on the filesystem is modified. It also warns against uploading private content. This is rich, annotation-complementing behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: main action, usage guideline, behavioral warnings, and format constraints. The description is compact yet comprehensive, front-loaded with the primary purpose and followed by increasingly specific caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description covers all essential context: return value (public URL), idempotency behavior, filesystem side effects (none), access restrictions (local only, API key), and format support. Nothing important is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already fully documents 'file_path' with an example, the description adds semantics: absolute path required, accepted formats (JPEG, PNG, WebP, GIF), and that type is inferred from extension. This goes beyond the schema to make parameter usage foolproof.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+outcome: 'Upload an image file from the local filesystem to the Misar.Blog CDN and return its public URL.' It also distinguishes the tool from its sibling 'generate_cover_image' by explicitly naming it, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use it for images the user already has on disk; use generate_cover_image when the image does not exist yet.' It additionally covers environmental constraints (local stdio only) and prerequisites (API key), leaving no ambiguity about when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
23 tool updates
v5.1.0- Changed
add_reaction2 fields changed- changed
Input schema / properties / article_id / descriptionPrevious value: -"UUID of the article"New value: +"UUID of the article to react to, from the `id` field of article tools." - changed
Input schema / properties / type / descriptionPrevious value: -"Reaction type: like, clap, or bookmark"New value: +"Which reaction to add: 'like' approval, 'clap' stronger approval, 'bookmark' save for later."
- Changed
add_to_series3 fields changed- changed
Input schema / properties / article_slug / descriptionPrevious value: -"The article slug to add"New value: +"Slug of the article to add, from list_my_articles. Not its title or id." - changed
Input schema / properties / position / descriptionPrevious value: -"Position in the series (optional, appends if omitted)"New value: +"1-based position within the series. Omit to append at the end. Inserting shifts later articles down." - changed
Input schema / properties / series_slug / descriptionPrevious value: -"The series slug"New value: +"Slug of the target series, from get_series. Not its title or id."
- Changed
create_draft3 fields changed- changed
Input schema / properties / body_markdown / descriptionPrevious value: -"Full article body in Markdown"New value: +"Article body so far, as Markdown." - changed
Input schema / properties / tags / descriptionPrevious value: -"Tags for the draft"New value: +"Topic tags to carry through to publication." - changed
Input schema / properties / title / descriptionPrevious value: -"Draft title"New value: +"Working headline. Can be changed before publishing."
- Changed
create_series2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"Short description of the series"New value: +"Short summary shown on the series page. Optional." - changed
Input schema / properties / title / descriptionPrevious value: -"Series title"New value: +"Display name of the series. The slug is derived from this."
- Changed
generate_cover_image2 fields changed- changed
Input schema / properties / prompt / descriptionPrevious value: -"Description of the image to generate"New value: +"What the image should show, in plain language, up to 1000 characters. Describe subject and style; avoid asking for text in the image." - changed
Input schema / properties / size / descriptionPrevious value: -"Image dimensions (default: landscape 1792x1024)"New value: +"Output dimensions: '1792x1024' landscape (the default, best for article covers), '1024x1024' square, '1024x1792' portrait."
- Changed
generate_title_seo2 fields changed- changed
Input schema / properties / context / descriptionPrevious value: -"Optional: existing article content (plain text or markdown). Providing it lets the AI align titles with your actual content."New value: +"Optional draft text (plain or Markdown, up to 8000 chars) so the titles match what the article actually says. Titles still follow `prompt` for keywords." - changed
Input schema / properties / prompt / descriptionPrevious value: -"Your article topic or target keywords. Be specific — include your niche, audience, and any long-tail phrases you want to rank for. Example: 'best AI writing tools for beginner bloggers 2025'"New value: +"Topic or target keywords, 3-500 characters. Include niche, audience and any long-tail phrase you want to rank for, e.g. 'best AI writing tools for beginner bloggers 2025'."
- Changed
get_analytics_summary1 field changed- changed
Input schema / properties / days / descriptionPrevious value: -"Number of days to look back (default: 30, max: 365)"New value: +"Size of the trailing window in days, ending today. 1-365, defaults to 30. Use 7 for a week, 365 for a year."
- Changed
get_article1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The article slug"New value: +"URL slug of the article, e.g. 'how-we-cut-build-times'. Not the numeric id, and not the full URL."
- Changed
get_follow_status1 field changed- changed
Input schema / properties / user_id / descriptionPrevious value: -"UUID of the profile to check follow status for"New value: +"UUID of the profile to check, as returned in author fields by article tools. Not the username."
- Changed
get_reactions1 field changed- changed
Input schema / properties / article_id / descriptionPrevious value: -"UUID of the article"New value: +"UUID of the article, from the `id` field returned by article tools."
- Changed
list_comments3 fields changed- changed
Input schema / properties / article_id / descriptionPrevious value: -"UUID of the article to fetch comments for"New value: +"UUID of the article, as returned in the `id` field by article tools. Not the slug." - added
Input schema / properties / limit / descriptionAdded value: +"Comments per page, 1-100. Defaults to 20." - added
Input schema / properties / offset / descriptionAdded value: +"Comments to skip before this page. Defaults to 0."
- Changed
list_my_articles2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Number of articles to return"New value: +"Maximum articles to return, 1-100. Defaults to 20." - changed
Input schema / properties / status / descriptionPrevious value: -"Filter by status (omit for all published)"New value: +"Return only articles in this state. Omit to return every state the account owns."
- Changed
list_newsletter_issues1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Issues to return, 1-50, newest first. Defaults to 10."
- Changed
list_newsletter_subscribers2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Subscribers per page, 1-100. Defaults to 20." - added
Input schema / properties / offset / descriptionAdded value: +"Subscribers to skip before this page. Defaults to 0."
- Changed
login3 fields changed- changed
Input schema / properties / base_url / descriptionPrevious value: -"Misar.Blog base URL for self-hosted instances."New value: +"Base URL of a self-hosted Misar.Blog. Omit for the hosted service." - changed
Input schema / properties / force / descriptionPrevious value: -"Force re-authentication even if already logged in (rotates your API key)."New value: +"Re-authenticate even when already logged in. This ROTATES the API key and breaks any other client using the old one — only on explicit request." - changed
Input schema / properties / port / descriptionPrevious value: -"Local callback port (9001–9099). Random by default."New value: +"Local port for the one-shot callback listener, 9001-9099. Random by default; set it only when a firewall requires a fixed port."
- Changed
publish_article6 fields changed- changed
Input schema / properties / body_markdown / descriptionPrevious value: -"Full article body in Markdown"New value: +"Complete article body as Markdown. Images may be referenced by URL." - changed
Input schema / properties / cover_image_url / descriptionPrevious value: -"URL of the cover image"New value: +"Absolute URL of the hero image. generate_cover_image returns a URL suitable here." - changed
Input schema / properties / schedule_at / descriptionPrevious value: -"ISO 8601 timestamp to schedule. Omit to publish immediately."New value: +"ISO 8601 timestamp to publish at, e.g. '2026-09-01T09:00:00Z'. Omit to publish immediately. A past timestamp publishes immediately." - changed
Input schema / properties / tags / descriptionPrevious value: -"Up to 10 tags"New value: +"Up to 10 topic tags used for discovery and filtering." - changed
Input schema / properties / title / descriptionPrevious value: -"Article title"New value: +"Headline, 1-250 characters." - changed
Input schema / properties / visibility / descriptionPrevious value: -"Who can read this article"New value: +"Audience: 'public' anyone, 'subscribers' newsletter subscribers, 'paid' paying members, 'private' only you. Defaults to 'public'."
- Changed
remove_reaction2 fields changed- changed
Input schema / properties / article_id / descriptionPrevious value: -"UUID of the article"New value: +"UUID of the article to un-react to, from the `id` field of article tools." - changed
Input schema / properties / type / descriptionPrevious value: -"Reaction type to remove: like, clap, or bookmark"New value: +"Which reaction to withdraw: 'like', 'clap', or 'bookmark'."
- Changed
research_topic1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Research topic or question. Be specific for best results."New value: +"The topic or question to research, 5-500 characters. Specific beats broad: 'how small SaaS teams price annual plans' returns more than 'pricing'."
- Changed
search_articles4 fields changed- changed
Input schema / properties / author / descriptionPrevious value: -"Filter by author username"New value: +"Restrict to one author, by username." - changed
Input schema / properties / limit / descriptionPrevious value: -"Results to return (1-20)"New value: +"Maximum results to return, 1-20. Defaults to 10." - changed
Input schema / properties / q / descriptionPrevious value: -"Keyword query (min 2 characters)"New value: +"Free-text query matched against title and body. Minimum 2 characters." - changed
Input schema / properties / tag / descriptionPrevious value: -"Filter by tag"New value: +"Restrict to articles carrying this exact tag."
- Changed
suggest_titles1 field changed- changed
Input schema / properties / context / descriptionPrevious value: -"Your article content in plain text or markdown"New value: +"The article text to draw titles from, plain or Markdown, 20-8000 characters. More of the real draft yields better-fitting titles than a summary."
- Changed
update_article4 fields changed- changed
Input schema / properties / body_markdown / descriptionPrevious value: -"New body in Markdown"New value: +"Replacement body as Markdown. Replaces the whole body, not a patch." - changed
Input schema / properties / id / descriptionPrevious value: -"Article or draft ID"New value: +"Article or draft id from a listing tool. This is the id, not the slug." - changed
Input schema / properties / tags / descriptionPrevious value: -"Replace the tag list"New value: +"Replacement tag list, up to 10. Overwrites the existing tags entirely." - changed
Input schema / properties / title / descriptionPrevious value: -"New title"New value: +"Replacement headline."
- Changed
upgrade3 fields changed- changed
Input schema / properties / open / descriptionPrevious value: -"Open the upgrade/checkout page in the default browser."New value: +"Open the checkout page in the user's default browser. Side effect on their desktop — only when they asked to upgrade." - changed
Input schema / properties / plan / descriptionPrevious value: -"Plan slug to open (e.g. 'pro', 'business'). Defaults to the recommended plan."New value: +"Plan slug to open, e.g. 'pro' or 'business'. Defaults to the recommended plan. Only meaningful with open=true." - changed
Input schema / properties / start_trial / descriptionPrevious value: -"Start the free no-card trial immediately, if you're eligible."New value: +"Enrol in the free no-card trial now, if eligible. This changes the account's plan — do not set it speculatively."
- Changed
upload_image1 field changed- changed
Input schema / properties / file_path / descriptionPrevious value: -"Absolute path to the image file (JPEG, PNG, WebP, or GIF)"New value: +"Absolute path to the image on this machine, e.g. '/Users/me/cover.png'. JPEG, PNG, WebP or GIF; the type is inferred from the extension."
26 tool updates
v2.0.0- First observed
add_reaction - First observed
add_to_series - First observed
create_draft - First observed
create_series - First observed
generate_cover_image - First observed
generate_title_seo - First observed
get_analytics_summary - First observed
get_article - First observed
get_follow_status - First observed
get_profile - First observed
get_reactions - First observed
get_series - First observed
list_comments - First observed
list_my_articles - First observed
list_newsletter_issues - First observed
list_newsletter_subscribers - First observed
login - First observed
publish_article - First observed
remove_reaction - First observed
research_topic - First observed
search_articles - First observed
status - First observed
suggest_titles - First observed
update_article - First observed
upgrade - First observed
upload_image
TDQS
Scored across 26 tools
Most tools target a distinct resource and action, and the close pairs like generate_title_seo vs suggest_titles and publish_article vs create_draft are clearly separated by their descriptions. The only mild issue is get_series, which despite its name returns the whole collection, but the description removes the ambiguity.
The majority of tools follow a clear verb_noun pattern such as create_draft, update_article, and add_reaction. A few bare verbs like login, status, and upgrade, plus the get_/list_ split for read operations, are minor deviations from an otherwise predictable convention.
At 26 tools, this exceeds the comfortable range and feels heavy even for a full blogging platform. Several narrow operations—three reaction tools, two newsletter list tools, and get_follow_status with no follow action—could be consolidated or omitted.
The article lifecycle lacks delete and unpublish, series have no update/remove/delete operations, and follow, comment, and newsletter features are read-only or missing key actions. Agents will hit dead ends on common requests like deleting an article, following a profile, or replying to a comment.
Maintenance
Related MCP Connectors
Create, manage, publish, and analyze Inblog content through AI agents.
SEO, competitor and AI-search data, plus blog management — draft, schedule and publish posts.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
- JellypodOAuthcom.jellypod
Create, import, and publish Jellypod podcast episodes from your AI assistant.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn implementation of the Model Context Protocol Server that allows AI clients like Cursor or Claude Desktop to manage Ghost CMS blogs by exposing capabilities like creating posts, adding tags, and uploading images.35547MIT

WordPress MCPofficial
AlicenseBqualityFmaintenanceA WordPress plugin that implements the Model Context Protocol to enable AI models and applications to interact with WordPress sites in a structured and secure way.565941ISC- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Halo blog systems through natural language, supporting article creation/editing/publishing, categories, tags, attachments, and includes 10 AI writing prompts for content optimization and SEO.18MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage WordPress sites through natural conversation, supporting post creation, content updates, site queries, and draft-to-publish workflows via the WordPress REST API.9MIT