Kraviona MCP Server
Click on "Deploy 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., "@Kraviona MCP Servershow me recent posts"
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.
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-passwordNever 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.jsFor 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: /healthSet 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.comGenerate 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 = 60Export 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-serverClaude custom connector
Use the full Streamable HTTP URL when adding the connector:
https://YOUR-RENDER-SERVICE.onrender.com/mcpThe 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 toolsadd_keywordAdd keyword to automation queueB
Add a keyword and target category to the automatic generation queue.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| priority | No | ||
| targetCategory | Yes |
TDQS
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.
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.
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.
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.
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.
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 categoryADestructiveIdempotent
Delete a category only when it contains no posts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes |
TDQS
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.
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.
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.
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.
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.
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 serviceADestructiveIdempotent
Permanently delete a service only if it has no associated client enquiries.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| confirm | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| category | Yes |
TDQS
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.
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.
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.
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.
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.
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 enquiriesCRead-only
Read project briefs submitted from the public services contact form.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | all |
TDQS
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.
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.
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.
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.
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.
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 queueARead-only
List pending and used keywords for automated content generation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 postsCRead-only
List editorial posts, optionally filtered by status or search query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No | ||
| status | No | all |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| seo | No | ||
| name | Yes | ||
| slug | No | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| seo | No | ||
| slug | No | ||
| order | No | ||
| title | Yes | ||
| status | No | draft | |
| eyebrow | No | ||
| summary | Yes | ||
| featured | No | ||
| officialUrl | No | ||
| deliverables | No |
TDQS
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.
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.
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.
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.
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.
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 settingsCIdempotent
Control dynamic robots.txt, sitemap.xml, llms.txt and ai.txt generation.
| Name | Required | Description | Default |
|---|---|---|---|
| llmsEnabled | No | ||
| aiTxtEnabled | No | ||
| disallowPaths | No | ||
| robotsEnabled | No | ||
| aiCustomPolicy | No | ||
| sitemapEnabled | No | ||
| allowAiCrawlers | No | ||
| sitemapMaxPosts | No | ||
| llmsIncludePosts | No | ||
| llmsInstructions | No | ||
| llmsIntroduction | No | ||
| aiTrainingAllowed | No | ||
| allowSearchEngines | No | ||
| llmsIncludeServices | No | ||
| sitemapIncludePosts | No | ||
| aiAttributionRequired | No | ||
| llmsIncludeCategories | No | ||
| sitemapIncludeServices | No | ||
| sitemapIncludeCategories | No | ||
| sitemapIncludeNewsletter | No |
TDQS
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.
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.
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.
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.
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.
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 settingsBIdempotent
Update global content, official company link, contact details and SEO displayed dynamically on the public frontend.
| Name | Required | Description | Default |
|---|---|---|---|
| tagline | No | ||
| brandName | No | ||
| heroTitle | No | ||
| defaultSeo | No | ||
| heroEyebrow | No | ||
| socialLinks | No | ||
| whatsappUrl | No | ||
| contactEmail | No | ||
| contactPhone | No | ||
| briefingTitle | No | ||
| servicesTitle | No | ||
| heroDescription | No | ||
| officialSiteUrl | No | ||
| briefingDescription | No | ||
| servicesDescription | No |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v1.0.0- First observed
add_keyword - First observed
delete_category - First observed
delete_service - First observed
generate_ai_draft - First observed
list_inquiries - First observed
list_keyword_queue - First observed
list_posts - First observed
save_category - First observed
save_service - First observed
update_crawler_settings - First observed
update_site_settings
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for Hostinger API
MCP server for Crowdin — projects, files, strings, translation progress, tasks, and members.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP Server for Web scraping and Crawling, built using Crawl4AI224-
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for WordPress automation that enables users to manage content, themes, and site configurations using AI-driven workflows and the WordPress REST API. It provides a wide array of tools for site planning, management, and optimization compatible with tools like Cursor and Claude.70 npm1ISC
- AlicenseBqualityDmaintenanceMCP server for the Kinsta WordPress hosting platform, enabling AI assistants to interact with Kinsta sites and infrastructure via the Kinsta API.8364 npm1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to manage WordPress sites, including Elementor page building, content CRUD, plugin management, and site configuration via the WordPress REST API.70 npmISC