Skip to main content
Glama
polytechub-code

Kraviona MCP Server

Kraviona MCP Server

MCP server for the Kraviona platform API. It supports local stdio and authenticated Streamable HTTP for production. It exposes tools for posts, categories, services, client enquiries, website settings, crawler files, AI drafts, and the keyword queue.

Configure

Set these variables in your MCP host configuration:

KRAVIONA_API_URL=http://localhost:4000
KRAVIONA_ADMIN_EMAIL=your-admin@example.com
KRAVIONA_ADMIN_PASSWORD=your-admin-password

Never commit real credentials. The server signs in through the normal Kraviona API and keeps its HTTP-only session cookies in memory only.

Related MCP server: TanukiMCP

MCP host configuration

{
  "mcpServers": {
    "kraviona": {
      "command": "node",
      "args": ["/absolute/path/to/kravionasite/mcp-server/src/index.js"],
      "env": {
        "KRAVIONA_API_URL": "http://localhost:4000",
        "KRAVIONA_ADMIN_EMAIL": "your-admin@example.com",
        "KRAVIONA_ADMIN_PASSWORD": "your-password"
      }
    }
  }
}

Run npm test -w mcp-server while the backend is running to verify tool discovery and API connectivity.

Production API setup

Keep production credentials in the ignored mcp-server/.env.production file, then start the stdio server with Node's environment-file support:

node --env-file=/absolute/path/to/mcp-server/.env.production /absolute/path/to/mcp-server/src/index.js

For Codex, configure this command under [mcp_servers.kraviona_production] in ~/.codex/config.toml. The MCP process runs locally while all CMS operations use https://api.kraviona.site. Restart Codex after changing MCP configuration.

Render production web service

Create a separate Render Web Service from the monorepo using these values:

Name: kraviona-site-mcp
Language: Node
Branch: main
Root Directory: mcp-server
Build Command: npm install
Start Command: npm run start:http
Health Check Path: /health

Set these Render environment variables:

NODE_VERSION=22
KRAVIONA_API_URL=https://api.kraviona.site
KRAVIONA_ADMIN_EMAIL=<production admin email>
KRAVIONA_ADMIN_PASSWORD=<production admin password>
MCP_BEARER_TOKEN=<a unique random secret of at least 24 characters>
MCP_PUBLIC_URL=https://YOUR-RENDER-SERVICE.onrender.com

Generate the bearer token locally with openssl rand -hex 32. Do not use the admin password as the bearer token. After deployment, verify the public health URL at https://YOUR-RENDER-SERVICE.onrender.com/health. The MCP endpoint is https://YOUR-RENDER-SERVICE.onrender.com/mcp and requires Authorization: Bearer <MCP_BEARER_TOKEN>.

Remote Codex configuration:

[mcp_servers.kraviona_remote]
url = "https://YOUR-RENDER-SERVICE.onrender.com/mcp"
bearer_token_env_var = "KRAVIONA_MCP_TOKEN"
startup_timeout_sec = 30
tool_timeout_sec = 60

Export KRAVIONA_MCP_TOKEN in the environment that starts Codex, then restart Codex. Test the production HTTP transport before deployment with:

npm run test:http -w mcp-server

Claude custom connector

Use the full Streamable HTTP URL when adding the connector:

https://YOUR-RENDER-SERVICE.onrender.com/mcp

The server advertises OAuth protected-resource and authorization-server metadata, supports Claude Dynamic Client Registration, and enforces PKCE. Clicking Connect opens the Kraviona consent screen. Enter the same value stored in MCP_BEARER_TOKEN; Claude receives a revocable OAuth access token and never receives the backend admin password.

mcp-kraviona

mcp-kraviona

mcp-kraviona

Available Tools

11 tools
add_keywordAdd keyword to automation queueB

Add a keyword and target category to the automatic generation queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
priorityNo
targetCategoryYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits like duplicate handling, permission requirements, or queue behavior, but it only states the basic add operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it could include key parameter details without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, no output schema, and no annotations, the description lacks details on return value, error handling, or expected behavior, making it incomplete for an AI agent's full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description only mentions 'keyword' and 'targetCategory' without explaining the 'priority' field or parameter constraints like minLength.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and the resource ('keyword and target category') to the automation queue, distinguishing it from sibling tools like save_category or list_keyword_queue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for adding to an automatic generation queue but lacks explicit guidance on when to use this tool vs alternatives, such as direct creation or batch operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_categoryDelete empty categoryA
DestructiveIdempotent

Delete a category only when it contains no posts.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
confirmYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the key safety condition (empty category) beyond annotations that already indicate idempotent and destructive behavior. It matches annotations and discloses a behavioral constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence that front-loads the verb and resource, with zero filler or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, two-parameter tool with no output schema, the description covers the core purpose and condition. It lacks details on error handling or response, but overall is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters, but it only hints at 'category' via the resource name. The 'id' and 'confirm' parameters are not explained; 'confirm' especially needs clarification as a safety flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete', the resource 'category', and the condition 'only when it contains no posts', making the tool's purpose distinct from sibling tools like save_category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the condition for use (category must have no posts), which guides when to use. However, it does not explicitly mention when not to use or suggest checking posts via list_posts, but the condition is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_serviceDelete unused serviceA
DestructiveIdempotent

Permanently delete a service only if it has no associated client enquiries.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
confirmYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the permanence of the deletion and the safety condition, adding value beyond the destructiveHint annotation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no waste. It efficiently conveys action, resource, and condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action and condition but lacks parameter explanations and return behavior. For a destructive tool with required confirm param, more detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not explain the parameters (id and confirm). The agent cannot infer what id refers to or that confirm must be true, leaving a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (permanently delete), the resource (service), and a specific condition (only if no associated client enquiries), which distinguishes it from sibling tools like save_service or delete_category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit condition for use ('only if it has no associated client enquiries'), which guides the agent on when to invoke the tool, though it does not mention alternatives or explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_ai_draftGenerate AI draftC

Ask the configured Anthropic model to create a complete SEO draft for human review.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
categoryYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states it asks the configured Anthropic model but does not clarify whether the draft is saved, returned, or if it is a read-only or mutative operation. This leaves significant behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 14 words, front-loading the key action and resource. Every word is necessary, and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and annotations, the description should cover return value and side effects. It only hints at the output being a draft for review but does not specify format or next steps, making it insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description adds no explanation of the 'topic' or 'category' parameters beyond their names. Since the names are self-explanatory, the description fails to add any additional meaning or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a 'complete SEO draft' using the configured Anthropic model, which specifies the verb and resource. It distinguishes from sibling tools which are mostly CRUD operations on categories, services, or settings, though it does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for generating a draft for human review, suggesting a non-final output. However, it provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_inquiriesList client enquiriesC
Read-only

Read project briefs submitted from the public services contact form.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoall

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description confirms 'Read' but adds no additional behavioral details (e.g., pagination, limits, or result size), providing no extra value beyond 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is too minimal, lacking essential detail about parameters or behavior; brevity is acceptable but not at the expense of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no parameter descriptions in the schema, the description omits crucial information like filtering capability and return format, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the single 'status' parameter or its allowed values; with 0% schema description coverage, the description should compensate but fails to add meaning beyond the enum schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the resource 'project briefs submitted from the public services contact form,' making the tool's purpose specific and distinct from siblings like list_posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives or when to apply the status filter; the description only states what it does without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_keyword_queueList automation queueA
Read-only

List pending and used keywords for automated content generation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint: true, which is consistent with 'list'. Description adds no further behavioral context (e.g., ordering, limits). With annotations, this is adequate but not enhanced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise and front-loaded with the action and resource. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description minimally conveys purpose but omits details like output fields or ordering, which could aid agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4 applies. Description does not need to add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'keywords' with qualifiers 'pending and used', distinguishing it from sibling tools like add_keyword or save_category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not specify context for use or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_postsList Kraviona postsC
Read-only

List editorial posts, optionally filtered by status or search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo
statusNoall

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, but the description adds no behavioral details such as pagination, sorting, or response format. It fails to disclose any behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it omits important parameter details (limit, enum values) that could be included without significant length increase. It is under-informative for a tool with 3 parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (3 parameters, no nested objects) but 0% schema description coverage and no output schema, the description is incomplete. It fails to explain the limit parameter and the exact status values, which are critical for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only vaguely mentions 'filtered by status or search query' without explaining the 'limit' parameter, default values, or allowed enum values for status. The description does not compensate for the lack of parameter documentation in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List editorial posts' with optional filters, which is a specific verb and resource. It differentiates from sibling tools like save_category, delete_category, and list_inquiries, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states optional filters without contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_categoryCreate or update categoryC

Create or update a category used by frontend navigation and landing pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
seoNo
nameYes
slugNo
descriptionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only says 'create or update' but does not disclose behavior like whether it overwrites existing data, what happens when id is provided vs missing, or any side effects. No annotations are provided to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and to the point. It could be slightly improved by front-loading the verb and resource, but it is well-structured for its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no annotations, the description is insufficient. It lacks details on return values, upsert behavior, and constraints (e.g., name uniqueness).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameter beyond the schema's name and type. The description adds no meaning to parameters like id, slug, or seo.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create or update a category' and its use case 'used by frontend navigation and landing pages.' It clearly distinguishes from sibling tools like delete_category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternative tools. No conditions, prerequisites, or when-not-to-use are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_serviceCreate or update serviceC

Manage a service, its deliverables, official kraviona.com URL, publishing status and homepage feature flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
seoNo
slugNo
orderNo
titleYes
statusNodraft
eyebrowNo
summaryYes
featuredNo
officialUrlNo
deliverablesNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description should reveal behavior but only says 'Manage'. No mention of idempotency, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence; concise but one-size-fits-all. No structure or hierarchy; could be reorganized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and 0% param descriptions, description fails to provide sufficient context for usage, parameter roles, or expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

0% schema coverage; description mentions deliverables, officialUrl, status, featured but ignores id, seo, slug, order, title, summary, eyebrow. Incomplete coverage for 11 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description says 'Manage a service' which is vague; does not clearly state create/update despite title. Lists some aspects but lacks a precise verb. Differentiates from siblings like delete_service but not sharply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings (e.g., save_category). No context about prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_crawler_settingsUpdate crawler and AI discovery settingsC
Idempotent

Control dynamic robots.txt, sitemap.xml, llms.txt and ai.txt generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
llmsEnabledNo
aiTxtEnabledNo
disallowPathsNo
robotsEnabledNo
aiCustomPolicyNo
sitemapEnabledNo
allowAiCrawlersNo
sitemapMaxPostsNo
llmsIncludePostsNo
llmsInstructionsNo
llmsIntroductionNo
aiTrainingAllowedNo
allowSearchEnginesNo
llmsIncludeServicesNo
sitemapIncludePostsNo
aiAttributionRequiredNo
llmsIncludeCategoriesNo
sitemapIncludeServicesNo
sitemapIncludeCategoriesNo
sitemapIncludeNewsletterNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral traits beyond the idempotentHint annotation. It does not mention side effects, whether changes are immediate, or any validation. The annotation is not contradicted, but the description adds minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. However, it is too brief to provide adequate context. It could include more detail without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count, lack of parameter descriptions, and no output schema, the description is insufficient. It only gives a high-level purpose, failing to guide the agent on proper use or expected results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 20 parameters with 0% description coverage. The description does not explain parameter meanings or relationships. Parameter names like 'aiCustomPolicy' or 'llmsInstructions' are not elaborated, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls generation of robots.txt, sitemap.xml, llms.txt, and ai.txt, which aligns with the name and title. It distinguishes from sibling tools like update_site_settings by focusing on crawler and AI discovery files. However, 'control' is somewhat vague; could specify enabling/disabling or configuring.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like update_site_settings. No mention of prerequisites, constraints, or best practices. The description lacks context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_site_settingsUpdate website settingsB
Idempotent

Update global content, official company link, contact details and SEO displayed dynamically on the public frontend.

ParametersJSON Schema
NameRequiredDescriptionDefault
taglineNo
brandNameNo
heroTitleNo
defaultSeoNo
heroEyebrowNo
socialLinksNo
whatsappUrlNo
contactEmailNo
contactPhoneNo
briefingTitleNo
servicesTitleNo
heroDescriptionNo
officialSiteUrlNo
briefingDescriptionNo
servicesDescriptionNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a mutation ('update') which is consistent with the idempotentHint annotation. It does not provide additional behavioral details such as side effects, permissions, or the idempotent nature beyond what the annotation already conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action, and contains no redundancy. It efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (15 parameters, nested objects, no output schema), the description lacks detail on default behavior, parameter structure, and return values. It is minimally complete for a simple understanding but insufficient for confident usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description gives a high-level overview of what parameters relate to (content, contact, SEO) but does not map to specific parameter names. With 0% schema coverage, it fails to compensate adequately for the 15 optional parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('update') and the resource ('global content, official company link, contact details and SEO displayed dynamically on the public frontend'). It distinguishes from sibling tools which deal with categories, services, posts, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for global site settings but does not explicitly state when to use it versus alternatives like save_category or save_service. No when-not or exclusion criteria provided.

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.

  1. 11 tool updatesv1.0.0
    • First observedadd_keyword
    • First observeddelete_category
    • First observeddelete_service
    • First observedgenerate_ai_draft
    • First observedlist_inquiries
    • First observedlist_keyword_queue
    • First observedlist_posts
    • First observedsave_category
    • First observedsave_service
    • First observedupdate_crawler_settings
    • First observedupdate_site_settings

TDQS

B3.2/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or action: categories, services, posts, inquiries, site settings, crawler settings, AI drafts, and keywords. The two settings tools are separated by their descriptions (global frontend content vs. robots/sitemap generation), so an agent should not confuse them.

Naming Consistency4/5

The naming mostly follows a clear verb_noun pattern: save_category, delete_service, list_posts, update_site_settings. Minor deviations include generate_ai_draft and add_keyword instead of a save/create verb, but the overall style is consistent and predictable.

Tool Count5/5

With 11 tools, the server is well-scoped for a content management and SEO workflow. Each tool addresses a distinct functional area without unnecessary duplication or bloat.

Completeness2/5

There are significant gaps in the workflow: categories and services can be saved/deleted but not listed, posts can only be listed with no create/update/delete tool, settings can only be updated and not read, and inquiries are read-only. Most notably, generate_ai_draft produces a draft but there is no tool to save or publish it as a post, leaving an obvious dead end.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers