Skip to main content
Glama
refined-element

Ask Refined Element MCP Server

Official

Part of Refined Element — an independent consultancy for Xperience by Kentico upgrades, AI-driven development, and agent-first marketing (GEO).

Ask Refined Element MCP Server

An open-source MCP (Model Context Protocol) server that lets AI agents query Refined Element's knowledge pack: field-tested guidance on Xperience by Kentico upgrades, GEO (generative engine optimization), AI-driven development, Sentinel for Xperience by Kentico, and agent-ready CMS architecture.

The knowledge pack is authored once in Xperience by Kentico and served headless — to humans on the website, to AI crawlers via llms.txt, and to agents through this MCP server. This server is one of those delivery surfaces, and a working example of the agent-ready CMS pattern the pack itself describes.

Most of the pack is free — including priority consultation requests. Two knowledge items are premium, gated behind a single L402 (Lightning) payment of 100 sats — a demonstration of metered, pay-per-access content on the same content model.

What It Does

Give your AI agent this server and it can:

  • Search the knowledge pack — ranked, answer-first summaries it can cite directly, across blog articles, FAQs, case studies, services, checklists, and premium playbooks on Kentico upgrades, GEO, AI development, Sentinel, and CMS architecture. FAQ, case study, and service matches come back with their content inline, so the match itself is the answer.

  • Browse the whole pack — call the same search tool with no query to get an index of every item, grouped by content type, before deciding what to read.

  • Fetch a full checklist — complete, ordered, actionable steps by slug (e.g. the GEO readiness checklist).

  • Read the blog — list recent Refined Element articles and read any one in full, with its HTML converted to clean text (headings, lists, and links preserved).

  • Request a consultation — send a message straight to Mike Rahel; set priority: true to flag it as urgent (free — no payment).

  • Buy a premium playbook — retrieve an L402-gated item: the tool returns the Lightning invoice on the first call, then the full content once the agent has paid.

Related MCP server: Maximum Sats MCP

Tools

Tool

Paid

What you get

search_refined_element_knowledge

Free

Ranked matches with answer-first summaries across articles, FAQs, case studies, services, checklists, and playbooks. Blog article hits point at get_article; FAQ, case study, and service hits carry their answer inline; premium hits are flagged with their price and the slug to buy them. With no query, returns an index of the whole pack.

get_checklist

Free

One full free checklist by slug — title, summary, topic, audience, and every ordered step.

list_articles

Free

Recent blog articles, newest first — title, publish date, one-line summary, url, and the slug to read each in full.

get_article

Free

One full blog article by slug — HTML converted to readable text (headings, lists, and links preserved), plus its canonical URL.

request_consultation

Free

Send a consultation request to Mike Rahel. Set priority: true to flag it as urgent — still free, no payment.

get_paid_playbook

100 sats (L402)

One premium item by slug. First call returns a Lightning invoice + macaroon; a second call with the paid credential returns the full content.

search_refined_element_knowledge

Full-text search over the pack. Returns ranked matches, each with an answer-first summary you can cite directly or use to decide which item to fetch in full. Premium items return a summary and slug only — get their body with get_paid_playbook. Free checklists can be pulled in full with get_checklist.

{
  "query": "kentico upgrade risk",   // optional — omit it to browse the index
  "topic": "kentico-upgrades",       // optional filter
  "audience": "decision-maker",       // optional filter
  "limit": 5                          // optional, default 5, max 20
}

What a match looks like. Blog articles and checklists carry a slug, and the match tells you which tool reads it in full (get_article, get_checklist, or get_paid_playbook for [PREMIUM] items). FAQs, case studies, and services have no slug and no separate page to fetch — their body, a case study's headline metrics, and a "→ More" link are rendered inline, so no follow-up call is needed.

Browsing the index. Call the tool with no query (or an empty one) and it returns an index of the whole pack instead of searching — every item grouped by content type (knowledge articles, checklists, Sentinel rules, agent endpoints), each with its title, slug, [PREMIUM] badge where it applies, and a one-line summary. It is the cheapest way for an agent to see what exists before it guesses at search terms.

topic and audience accept any string and are matched exactly against each result — the taxonomy is owned by the CMS, so new values keep working without a package upgrade. Known topic values today (examples): kentico-upgrades, geo, ai-development, sentinel, cms-architecture. Known audience values today (examples): developer, marketer, decision-maker, agent. Every field is optional.

get_checklist

Fetch one full free checklist by slug, e.g. geo-readiness-checklist-basic. Returns the complete ordered step list — each step with its one-line action and an explanatory sentence — ready to follow, quote, or hand to a user. If the slug is a premium checklist, the response points you to get_paid_playbook. Unknown slugs return a not-found result.

{ "slug": "geo-readiness-checklist-basic" }

list_articles

List the most recent posts from the Refined Element blog, newest first. Each entry has its title, publish date, a one-line summary, the canonical URL, and the slug to read it in full with get_article.

{ "limit": 10 }   // optional, default 10, max 50

get_article

Read one full blog article by slug (discover slugs with list_articles or search_refined_element_knowledge). Returns the title, publish date, summary, the complete body converted from HTML to readable text — headings, lists, and links preserved — and the canonical URL. Unknown slugs return a not-found result.

{ "slug": "agent-ready-cms-xperience" }

request_consultation

Send a consultation request straight to Mike Rahel — for Xperience by Kentico upgrades, AI-driven development, or agent-first (GEO) work. The email is shape-checked locally (a quick @/length sanity check) and fully validated by the API.

{
  "name": "Ada Lovelace",
  "email": "ada@example.com",
  "message": "We need help upgrading a KX13 site to Xperience by Kentico.",
  "company": "Analytical Engines Ltd",  // optional
  "priority": false                      // optional; true = flag as urgent (free)
}

Mike reads every request personally, so include enough context for him to act on it. Set priority: true to flag the request as urgent so Mike sees the urgency — priority is free, no payment required.

get_paid_playbook (L402-gated)

Retrieve one premium item by slug, gated at 100 sats via L402. Discover the current premium items and their slugs with search_refined_element_knowledge — they are flagged [PREMIUM]. (Examples at the time of writing: agent-ready-cms-checklist-full, kentico-upgrade-risk-triage — the CMS owns the catalog, so this list can grow without a package release.)

{
  "slug": "kentico-upgrade-risk-triage",
  "macaroon": "…",   // omit on the first call
  "preimage": "…"     // omit on the first call
}

See The L402 payment flow below.

Requirements

  • Node.js ≥ 22.

  • The Ask Refined Element API (/api/ask/*) must be live at the configured base URL. The default is the production site, https://refinedelement.com. If the API is not reachable there — for example while it is still being deployed, or when you run the site locally — point the server at the right host with the ASK_RE_BASE_URL environment variable (see Development). When the base URL answers with an HTML page instead of API JSON, the tools report that the API is not deployed/reachable there rather than pretending content does not exist.

Quick Install

Run it with no install:

npx -y ask-refined-element-mcp

Claude Code

claude mcp add ask-refined-element -- npx -y ask-refined-element-mcp

Or add it to .mcp.json in your project:

{
  "mcpServers": {
    "ask-refined-element": {
      "command": "npx",
      "args": ["-y", "ask-refined-element-mcp"]
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "ask-refined-element": {
      "command": "npx",
      "args": ["-y", "ask-refined-element-mcp"]
    }
  }
}

Config file locations:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/claude/claude_desktop_config.json

No API key, wallet, or secret is needed to install or run this server — it calls only public endpoints. A Lightning wallet is needed only to unlock the two premium items (see below).

The L402 Payment Flow

Two knowledge items are premium and gated with L402 — the HTTP 402 "Payment Required" standard for pay-per-access over Lightning. get_paid_playbook handles both halves of the exchange:

  1. Ask for the item. Call get_paid_playbook with only the slug. The endpoint answers 402 Payment Required with a Lightning invoice (100 sats) and a macaroon. The tool returns these as structured payment instructions — it does not error.

  2. Pay the invoice. Pay the Lightning invoice with any wallet that returns a payment preimage. The easiest path for an agent is the free Lightning Enable MCP server and its pay_invoice tool — connect a wallet via NWC or Strike (docs.lightningenable.com) and it pays, tracks, and budgets automatically.

  3. Unlock the content. Call get_paid_playbook again with the same slug plus the macaroon from step 1 and the preimage from step 2. The tool sends Authorization: L402 <macaroon>:<preimage> and returns the full item.

If a credential fails to verify, the tool returns a fresh challenge with the same guidance, so the agent can retry cleanly. Run both the Lightning Enable MCP and this server together and an agent can discover, pay for, and read a premium playbook end to end without a human in the loop.

Development

Clone, install, build, and run the smoke tests:

git clone https://github.com/refined-element/ask-refined-element.git
cd ask-refined-element
npm install
npm run build      # tsc → dist/
npm test           # vitest — mocks fetch, asserts each tool + the 402 flow

Run against a local Ask Refined Element API instead of production with the ASK_RE_BASE_URL environment variable:

# Default is https://refinedelement.com
ASK_RE_BASE_URL=http://localhost:23918 npx -y ask-refined-element-mcp

# The local re-xbk app may serve the API on :23918 or :23917
ASK_RE_BASE_URL=http://localhost:23917 node dist/index.js

In a client config, set it under env:

{
  "mcpServers": {
    "ask-refined-element": {
      "command": "node",
      "args": ["/absolute/path/to/ask-refined-element/dist/index.js"],
      "env": { "ASK_RE_BASE_URL": "http://localhost:23918" }
    }
  }
}

npm run dev runs the TypeScript entry point directly via tsx without a build step.

Project structure

ask-refined-element/
├── src/
│   ├── index.ts    # stdio entry point (bin)
│   ├── server.ts   # MCP server + tool registration (zod schemas)
│   ├── tools.ts    # tool logic + response formatting
│   ├── api.ts      # public HTTP client (10s timeout, clean error shaping)
│   └── types.ts    # API response shapes
├── test/
│   └── tools.test.ts
├── package.json
├── tsconfig.json
├── CHANGELOG.md
└── LICENSE

License

MIT © Refined Element, LLC — see LICENSE.

Available Tools

6 tools
get_articleRead a full blog articleA

Read one full Refined Element blog article by slug (get slugs from list_articles or search_refined_element_knowledge). Returns the title, publish date, summary, and the complete article body converted from HTML to readable text — headings, lists, and links preserved — plus the canonical URL. Unknown slugs return a not-found result.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesArticle slug, as discovered via list_articles or search_refined_element_knowledge.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the exact payload (title, publish date, summary, full body), the HTML-to-text conversion with headings/lists/links preserved, the canonical URL, and the not-found behavior for unknown slugs. It omits auth or rate-limit context, but for a public read tool that is a minor gap.

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?

Two tight sentences, front-loaded with the verb, resource, and required input key before describing the return payload and edge case. No filler.

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

Completeness5/5

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

No output schema exists, so the description usefully specifies the return contents and the not-found case, and the single parameter is fully documented in the schema. An agent has everything needed to call it and interpret the result.

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

Parameters3/5

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

Schema coverage is 100% and there is a single required slug parameter whose schema description already says it is discovered via list_articles or search_refined_element_knowledge. The description repeats that guidance without adding format or syntax detail, so the baseline 3 applies.

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?

States a specific verb and resource ('Read one full Refined Element blog article by slug') with explicit scope ('one full ... article'), which cleanly separates it from the list/search siblings. An agent can tell it fetches a single article body rather than a collection.

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?

Gives clear context: slugs come from list_articles or search_refined_element_knowledge, so the agent knows the retrieval path. It stops short of stating when not to use this tool (e.g., versus get_paid_playbook), so it is strong but not fully routing-complete.

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

get_checklistGet a free checklistA

Fetch one full free checklist from the Ask Refined Element pack by slug (e.g. geo-readiness-checklist-basic). Returns the checklist's title, summary, topic, audience, and complete ordered steps — each with its one-line action and an explanatory sentence — ready to follow, quote, or hand to a user. If the slug names a premium checklist the response explains it is paid and points you to get_paid_playbook. Unknown slugs return a not-found result. Get valid slugs from search_refined_element_knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesChecklist slug, e.g. geo-readiness-checklist-basic.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the exact return shape (title, summary, topic, audience, ordered steps with action + explanation), the premium-slug branch behavior, and the unknown-slug not-found case. That edge-case and return-content coverage is well beyond anything structured fields provide.

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?

Three tight sentences, front-loaded with the action and scope, followed by return content and then routing/error guidance. Every clause earns its place with no filler.

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

Completeness5/5

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

With no output schema and no annotations, the description fully compensates by describing the returned fields, the premium-path behavior, and the not-found outcome, plus where to obtain valid slugs. An agent has everything needed to call and interpret this tool.

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

Parameters3/5

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

Schema coverage is 100% and the single slug parameter is fully documented in the schema with the same example the description uses. The description adds no syntax, format, or constraint detail beyond the schema, so baseline 3 is appropriate.

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?

States a specific verb (fetch) and resource (one full free checklist) plus the source pack and slug identifier. It explicitly distinguishes itself from get_paid_playbook for premium content, so an agent can route correctly without opening a schema.

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

Usage Guidelines5/5

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

Names both the input source ('Get valid slugs from search_refined_element_knowledge') and the alternative for premium slugs (get_paid_playbook). When-to-use and where-to-get-inputs are both explicit, leaving nothing to inference.

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

get_paid_playbookGet a premium (L402-paid) playbookA

Retrieve one premium item from the Ask Refined Element pack by slug. Premium items are L402-gated (typically 100 sats); discover them and their slugs with search_refined_element_knowledge — they are marked [PREMIUM]. Call this tool FIRST with only the slug: the endpoint answers HTTP 402 Payment Required with a Lightning invoice and a macaroon, which this tool returns as structured payment instructions. Pay the invoice (the free Lightning Enable MCP server can do this automatically — github.com/refined-element/lightning-enable-mcp), then call this tool AGAIN with the same slug plus the macaroon and the payment preimage to receive the full content.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPremium item slug, as discovered via search_refined_element_knowledge (premium matches are marked [PREMIUM] and include their slug).
macaroonNoThe macaroon from the 402 challenge. Omit on the first call.
preimageNoThe Lightning payment preimage proving you settled the invoice. Omit on the first call.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the L402 paywall, the typical cost (100 sats), the HTTP 402 challenge and its invoice/macaroon response, and the mandatory two-call handshake with the preimage as proof of payment. This is exactly the behavioral context an agent needs before invoking a payment-gated tool.

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?

Front-loaded with the one-line purpose, then the gating mechanism, then the procedural flow, so each part is findable. It is slightly dense in the middle (payment-server URL and 402 detail) but every sentence carries actionable information.

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

Completeness5/5

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

For a payment-gated, stateless-looking tool with no output schema, the description covers gating, cost, failure mode (402 with challenge payload), and the complete retry path. An agent has everything required to invoke it correctly on both passes.

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?

Schema coverage is 100%, so the three parameters are already documented, giving a baseline of 3. The description adds real meaning beyond the schema by explaining that macaroon and preimage are omitted on the first call and required on the second, clarifying the two-phase contract rather than just restating field names.

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?

States a specific verb and resource ('Retrieve one premium item from the Ask Refined Element pack by slug') and names the sibling that discovers slugs, so it is immediately distinguishable from search_refined_element_knowledge and the free get_article/get_checklist siblings.

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

Usage Guidelines5/5

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

Gives explicit sequencing ('Call this tool FIRST with only the slug', then 'call this tool AGAIN with the same slug plus the macaroon and the payment preimage'), names the discovery alternative, and even points at the recommended Lightning payment helper.

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

list_articlesList recent blog articlesA

List the most recent posts from the Refined Element blog — each with its title, publish date, a one-line summary, and the slug to read it in full. Use this to see what Refined Element has published on Xperience by Kentico, GEO, AI-driven development, and agent commerce, then call get_article(slug) for the complete text. Returns newest-first, up to 50 (default 10).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of articles to return (default 10, max 50, newest first).

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are present, so the description carries the burden. It discloses ordering (newest-first) and the result cap (up to 50), and because there is no output schema it usefully describes the return shape. It does not address permissions, pagination beyond the cap, or what happens when no articles match, which keeps it short of a 5.

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 front-loaded with the core verb and payload, and the follow-up get_article call is placed before the less important cap details. It is slightly redundant in restating the limit/ordering facts already in the schema, but there is no filler sentence.

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

Completeness5/5

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

For a single-optional-parameter list tool with no output schema, the description supplies everything an agent needs: the fields returned, the ordering, the cap, and the natural follow-up tool. Nothing required to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the single limit parameter is already documented there, including default 10, max 50, and newest-first ordering. The description repeats that same information ('Returns newest-first, up to 50 (default 10)') without adding syntax or behavior beyond the schema, so the baseline of 3 applies.

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?

States a specific verb and resource ('List the most recent posts from the Refined Element blog') and enumerates exactly what each item contains: title, publish date, one-line summary, and slug. It also distinguishes itself from the sibling get_article, which returns the full text rather than the index.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use ('Use this to see what Refined Element has published on Xperience by Kentico, GEO, AI-driven development, and agent commerce') and names the alternative/next step with its argument shape ('then call get_article(slug) for the complete text'). The routing decision between the two tools is fully stated.

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

request_consultationRequest a consultation from Refined ElementA

Send a consultation request straight to Mike Rahel at Refined Element — for Xperience by Kentico upgrades, AI-driven development, or agent-first (GEO) work. Submit your name, email, and message; Mike reads every one personally, so include enough context (what you're building, your Kentico version, timeline) for him to act on it. Set priority: true to flag the request as urgent so Mike sees the urgency — priority is free, no payment required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesYour name (required).
emailYesReply-to email address (required). Shape-checked locally; validated by the API.
companyNoYour company or project name (optional).
messageYesWhat you need help with (required). Include enough context for Mike to act on.
priorityNoSet true to flag the request as urgent (free — no payment). Omit or false for a normal request.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose useful non-obvious traits: a human ('Mike') reads every request personally, and priority is free with no payment. It does not disclose what happens after submission (confirmation behavior), whether data is stored/shared, or any rate limits — notable gaps for a mutation tool that transmits contact data to a third party.

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?

Purpose is front-loaded and the passage is a tight four-sentence block with no filler. There is mild redundancy — 'priority is free, no payment required' restates the schema description — but overall it is efficient and readable.

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 5-parameter submission tool with no output schema and no annotations, the description covers inputs and recipient well but omits return/confirmation behavior and error semantics. An agent knows how to call it but not what to expect back, which is a meaningful completeness gap.

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?

Schema coverage is already 100%, so the baseline is 3, but the description adds genuine meaning: it tells the agent what to put in 'message' (what you're building, your Kentico version, timeline) and clarifies that priority=true flags urgency at no cost. This enriches the highest-value field beyond the schema's generic 'include enough context'.

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?

States a specific verb and resource ('Send a consultation request') and identifies the recipient (Mike Rahel at Refined Element), then scopes it to three concrete domains: Kentico upgrades, AI-driven development, and GEO work. An agent can immediately tell this is a write/send action, distinct from every read-only sibling (get_article, list_articles, etc.).

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 subject-matter scoping ('for Xperience by Kentico upgrades, AI-driven development, or agent-first (GEO) work') makes the intended use context clear. However, it never says when NOT to use it or points to an alternative (e.g., search_refined_element_knowledge for a quick answer instead of contacting a human), so the routing guidance is incomplete.

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

search_refined_element_knowledgeSearch or browse Refined Element knowledgeA

Full-text search over the Ask Refined Element knowledge pack — blog articles, FAQs, case studies, services, checklists, and premium playbooks covering Xperience by Kentico upgrades, GEO (generative engine optimization), AI-driven development, Sentinel for Xperience by Kentico, and CMS architecture. Returns ranked matches, each with an answer-first summary you can cite directly or use to decide which item to fetch in full. FAQ, case study, and service matches carry no slug — their content comes back inline, so the match itself is the answer. Blog articles are read in full with get_article. Free checklists are fetched in full with get_checklist. Premium items return a summary and slug only — retrieve their full body with get_paid_playbook. Omit the query (or pass an empty one) to browse an index of everything in the pack, grouped by content type. Use this as the entry point whenever you need Refined Element's expertise on Kentico, GEO, or agent-ready CMS.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of matches to return (default 5, max 20).
queryNoSearch terms. Omit it (or pass an empty string) to browse an index of the whole knowledge pack, grouped by content type, instead of searching.
topicNoOptional topic filter applied to the returned matches (exact string match). Known topics include: kentico-upgrades, geo, ai-development, sentinel, cms-architecture. The pack is CMS-managed, so new topics may appear — any string is accepted.
audienceNoOptional audience filter applied to the returned matches (exact string match). Known audiences include: developer, marketer, decision-maker, agent. The pack is CMS-managed, so new audiences may appear — any string is accepted.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses ranked-result formatting, that FAQ/case study/service matches have no slug and return content inline, that premium items return only a summary plus slug, and that bare queries produce a type-grouped index. It does not mention auth requirements, rate limits, or pagination beyond the limit parameter, which are minor gaps.

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?

Dense but well front-loaded, leading with scope and content types before the retrieval mechanics. The omitted-query browse behavior is stated twice (once in the body, once implicitly via the schema-mirroring phrasing), a small redundancy that keeps it from a perfect score.

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

Completeness5/5

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

There is no output schema, so the description must explain return values itself — and it does, describing ranked matches, inline content for slug-less types, and summary-plus-slug for premium items, plus the index fallback. Nothing needed to call or interpret the tool is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the query-omission behavior and the topic/audience filtering at a conceptual level but adds no syntax or matching-rule detail (e.g., how keyword search handles multi-term queries) beyond what the schema already documents.

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?

Names a specific verb and resource (full-text search over the Ask Refined Element knowledge pack) and enumerates the exact content types covered, including the topical domains. An agent can distinguish it from sibling retrieval tools like get_article or get_paid_playbook without opening any schema.

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

Usage Guidelines5/5

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

Explicitly positions itself as the entry point when Refined Element expertise is needed, explains the browse mode when the query is omitted, and routes to the correct follow-up tool per content type (get_article for blog, get_checklist for free checklists, get_paid_playbook for premium). Conditions and alternatives are all stated.

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. 6 tool updatesv0.2.0
    • First observedget_article
    • First observedget_checklist
    • First observedget_paid_playbook
    • First observedlist_articles
    • First observedrequest_consultation
    • First observedsearch_refined_element_knowledge

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation4/5

Each tool targets a distinct content type or action: search as entry point, list_articles for browsing, get_article/get_checklist/get_paid_playbook for fetching specific resource types, and request_consultation for contact. The three 'get_*' fetch tools share a shape but are separated by clear resource boundaries (free article vs free checklist vs premium playbook), so an agent can select reliably.

Naming Consistency5/5

All names follow a consistent verb_noun snake_case pattern (get_checklist, list_articles, get_article, get_paid_playbook, request_consultation, search_refined_element_knowledge). Only search_refined_element_knowledge is verbose, but the convention is uniform throughout.

Tool Count5/5

Six tools is well-scoped for a knowledge-pack/content server, with each tool earning its place across discovery, retrieval, and contact workflows. Nothing feels redundant or missing at the count level.

Completeness4/5

The surface covers discovery (search, list), retrieval by type (article, checklist, premium playbook), and a consultation path, with FAQ/case-study/service content returned inline via search. Minor gap: no dedicated browse/list for checklists or premium playbooks, though search partially compensates.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to access paid content by integrating cryptocurrency payments through the x402 protocol, allowing LLMs to verify payments and retrieve paid resources automatically.
    1
    -
  • A
    license
    A
    quality
    F
    maintenance
    Provides tools for AI agents to access Bitcoin, Lightning Network, and Nostr knowledge, including real-time network statistics and Web of Trust reputation data. It features an integrated Lightning Network payment system for micro-transactions and query-based interactions.
    12
    5 npm
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Exposes professional SEO tools (content briefs, keyword research, SERP analysis, backlink profiles, and on-page audits) to MCP-compatible AI agents with automatic x402 micropayment handling on Base.
    5
    36 npm
    MIT