Koskamo

Dedox MCP

An official MCP server provided by Dedox that allows AI assistants like Claude and Cursor to write, edit, and organize help centre articles directly from chat interfaces.

Endpoint and access

API key: create a key with the vendor first; your client sends it as an authorization header on every request.

Dedox MCP logo, by DedoxVendor evidenceStreamable HTTPAPI keyEndpoint checked 2026-11-01Operated by Dedox
MCP endpoint (Streamable HTTP)
https://api.dedox.ai/mcp
Vendor documentation

What you can do with it

  • Ask AI to write help centre articles
  • Edit existing articles via chat
  • Organize article structure and categories

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
dedox-mcp-server 1.1.0
MCP protocol
2025-06-18
Tools
24 advertised
Resources
Sign-in required
Resource templates
Sign-in required
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {},
  "resources": {}
}

Tools

24 advertised

list_articles — List articles
Advertised by the server during the last successful anonymous check.
Advertised read-only

List articles for a knowledge base with optional filters

list_articles input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results (1-100, default: 50)"
    },
    "offset": {
      "type": "number",
      "description": "Number of results to skip (default: 0)"
    },
    "status": {
      "enum": [
        "draft",
        "pending",
        "approved",
        "rejected"
      ],
      "type": "string",
      "description": "Filter by status"
    },
    "category": {
      "type": "string",
      "description": "Filter by category"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
list_articles annotations
{
  "title": "List articles",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_article — Get article
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get detailed information about a specific article

get_article input schema
{
  "type": "object",
  "required": [
    "articleId"
  ],
  "properties": {
    "articleId": {
      "type": "string",
      "description": "Article ID"
    }
  }
}
get_article annotations
{
  "title": "Get article",
  "readOnlyHint": true,
  "openWorldHint": false
}
create_article — Create article
Advertised by the server during the last successful anonymous check.

Create a new article in a knowledge base

create_article input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId",
    "title",
    "content"
  ],
  "properties": {
    "seo": {
      "type": "object",
      "description": "SEO metadata object with optional fields: metaTitle (max 60 chars), metaDescription (max 160 chars), keywords (array of strings or comma-separated string)"
    },
    "slug": {
      "type": "string",
      "description": "URL slug (auto-generated from title if not provided)"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of tag strings"
    },
    "title": {
      "type": "string",
      "description": "Article title"
    },
    "status": {
      "enum": [
        "draft",
        "pending",
        "approved",
        "rejected"
      ],
      "type": "string",
      "description": "Article status (default: draft)"
    },
    "content": {
      "type": "string",
      "description": "Article content (Markdown format, will be converted to HTML)"
    },
    "excerpt": {
      "type": "string",
      "description": "Short description or excerpt (max 500 characters)"
    },
    "category": {
      "type": "string",
      "description": "Article category"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
create_article annotations
{
  "title": "Create article",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_article — Update article
Advertised by the server during the last successful anonymous check.

Update an existing article. Creates a new version with a change note.

update_article input schema
{
  "type": "object",
  "required": [
    "articleId"
  ],
  "properties": {
    "seo": {
      "type": "object",
      "description": "SEO metadata object with optional fields: metaTitle (max 60 chars), metaDescription (max 160 chars), keywords (array of strings or comma-separated string)"
    },
    "slug": {
      "type": "string",
      "description": "URL slug"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of tag strings"
    },
    "title": {
      "type": "string",
      "description": "Article title"
    },
    "status": {
      "enum": [
        "draft",
        "pending",
        "approved",
        "rejected"
      ],
      "type": "string",
      "description": "Article status"
    },
    "content": {
      "type": "string",
      "description": "Article content (Markdown format, will be converted to HTML)"
    },
    "excerpt": {
      "type": "string",
      "description": "Article excerpt (max 500 characters)"
    },
    "category": {
      "type": "string",
      "description": "Article category"
    },
    "articleId": {
      "type": "string",
      "description": "Article ID"
    },
    "changeNote": {
      "type": "string",
      "description": "Optional note describing the changes made (max 500 characters). If not provided, a summary of changed fields will be generated."
    }
  }
}
update_article annotations
{
  "title": "Update article",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_article — Delete article
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete an article (soft delete)

delete_article input schema
{
  "type": "object",
  "required": [
    "articleId"
  ],
  "properties": {
    "articleId": {
      "type": "string",
      "description": "Article ID"
    }
  }
}
delete_article annotations
{
  "title": "Delete article",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_knowledge_bases — List knowledge bases
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all knowledge bases owned by the user

list_knowledge_bases input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
list_knowledge_bases annotations
{
  "title": "List knowledge bases",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_knowledge_base — Get knowledge base
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get detailed information about a specific knowledge base

get_knowledge_base input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
get_knowledge_base annotations
{
  "title": "Get knowledge base",
  "readOnlyHint": true,
  "openWorldHint": false
}
create_knowledge_base — Create knowledge base
Advertised by the server during the last successful anonymous check.

Create a new knowledge base

create_knowledge_base input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Knowledge base name"
    },
    "branding": {
      "type": "object",
      "description": "Branding configuration"
    },
    "settings": {
      "type": "object",
      "description": "Knowledge base settings"
    },
    "subdomain": {
      "type": "string",
      "description": "Custom subdomain (auto-generated if not provided)"
    }
  }
}
create_knowledge_base annotations
{
  "title": "Create knowledge base",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_knowledge_base — Update knowledge base
Advertised by the server during the last successful anonymous check.

Update an existing knowledge base

update_knowledge_base input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Knowledge base name"
    },
    "branding": {
      "type": "object",
      "description": "Branding configuration"
    },
    "settings": {
      "type": "object",
      "description": "Knowledge base settings"
    },
    "subdomain": {
      "type": "string",
      "description": "Custom subdomain"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
update_knowledge_base annotations
{
  "title": "Update knowledge base",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_knowledge_base — Delete knowledge base
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a knowledge base (soft delete)

delete_knowledge_base input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
delete_knowledge_base annotations
{
  "title": "Delete knowledge base",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_knowledge_base_analytics — Get knowledge base analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get analytics data for a knowledge base

get_knowledge_base_analytics input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId",
    "startDate",
    "endDate"
  ],
  "properties": {
    "endDate": {
      "type": "string",
      "description": "End date (ISO format)"
    },
    "startDate": {
      "type": "string",
      "description": "Start date (ISO format)"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
get_knowledge_base_analytics annotations
{
  "title": "Get knowledge base analytics",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_article_analytics — Get article analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get analytics data for an article

get_article_analytics input schema
{
  "type": "object",
  "required": [
    "articleId",
    "startDate",
    "endDate"
  ],
  "properties": {
    "endDate": {
      "type": "string",
      "description": "End date (ISO format)"
    },
    "articleId": {
      "type": "string",
      "description": "Article ID"
    },
    "startDate": {
      "type": "string",
      "description": "Start date (ISO format)"
    }
  }
}
get_article_analytics annotations
{
  "title": "Get article analytics",
  "readOnlyHint": true,
  "openWorldHint": false
}
search_articles — Search articles
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search articles using full-text search

search_articles input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "description": "Maximum number of results (1-100, default: 50)"
    },
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "offset": {
      "type": "number",
      "description": "Number of results to skip (default: 0)"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Filter by knowledge base ID"
    }
  }
}
search_articles annotations
{
  "title": "Search articles",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_article_categories — List categories
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get all categories used in a knowledge base

get_article_categories input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
get_article_categories annotations
{
  "title": "List categories",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_article_tags — List tags
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get all tags used in a knowledge base

get_article_tags input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId"
  ],
  "properties": {
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
get_article_tags annotations
{
  "title": "List tags",
  "readOnlyHint": true,
  "openWorldHint": false
}
create_category — Create category
Advertised by the server during the last successful anonymous check.

Create a new category in a knowledge base. It is listed straight away, including before an article uses it.

create_category input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Category name"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
create_category annotations
{
  "title": "Create category",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_category — Rename category
Advertised by the server during the last successful anonymous check.

Rename a category in a knowledge base (updates all articles with that category)

update_category input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId",
    "categoryName",
    "newName"
  ],
  "properties": {
    "newName": {
      "type": "string",
      "description": "New category name"
    },
    "categoryName": {
      "type": "string",
      "description": "Current category name"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
update_category annotations
{
  "title": "Rename category",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_category — Delete category
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a category from a knowledge base (uncategorizes all articles with that category)

delete_category input schema
{
  "type": "object",
  "required": [
    "knowledgeBaseId",
    "categoryName"
  ],
  "properties": {
    "categoryName": {
      "type": "string",
      "description": "Category name to delete"
    },
    "knowledgeBaseId": {
      "type": "string",
      "description": "Knowledge base ID"
    }
  }
}
delete_category annotations
{
  "title": "Delete category",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_comments — List comments
Advertised by the server during the last successful anonymous check.
Advertised read-only

List comments for an article

list_comments input schema
{
  "type": "object",
  "required": [
    "articleId"
  ],
  "properties": {
    "status": {
      "enum": [
        "pending",
        "approved",
        "rejected",
        "spam"
      ],
      "type": "string",
      "description": "Filter by status"
    },
    "articleId": {
      "type": "string",
      "description": "Article ID"
    }
  }
}
list_comments annotations
{
  "title": "List comments",
  "readOnlyHint": true,
  "openWorldHint": false
}
approve_comment — Approve comment
Advertised by the server during the last successful anonymous check.

Approve a pending comment on an article so it is shown publicly

approve_comment input schema
{
  "type": "object",
  "required": [
    "commentId"
  ],
  "properties": {
    "commentId": {
      "type": "string",
      "description": "Comment ID"
    }
  }
}
approve_comment annotations
{
  "title": "Approve comment",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
reject_comment — Reject comment
Advertised by the server during the last successful anonymous check.

Reject a pending comment on an article so it is not shown publicly

reject_comment input schema
{
  "type": "object",
  "required": [
    "commentId"
  ],
  "properties": {
    "commentId": {
      "type": "string",
      "description": "Comment ID"
    }
  }
}
reject_comment annotations
{
  "title": "Reject comment",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_comment — Delete comment
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a comment (soft delete)

delete_comment input schema
{
  "type": "object",
  "required": [
    "commentId"
  ],
  "properties": {
    "commentId": {
      "type": "string",
      "description": "Comment ID"
    }
  }
}
delete_comment annotations
{
  "title": "Delete comment",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_article_versions — List article versions
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all versions of an article

list_article_versions input schema
{
  "type": "object",
  "required": [
    "articleId"
  ],
  "properties": {
    "articleId": {
      "type": "string",
      "description": "Article ID"
    }
  }
}
list_article_versions annotations
{
  "title": "List article versions",
  "readOnlyHint": true,
  "openWorldHint": false
}
restore_article_version — Restore article version
Advertised by the server during the last successful anonymous check.

Restore an article to a specific version

restore_article_version input schema
{
  "type": "object",
  "required": [
    "articleId",
    "versionNumber"
  ],
  "properties": {
    "articleId": {
      "type": "string",
      "description": "Article ID"
    },
    "versionNumber": {
      "type": "number",
      "description": "Version number to restore"
    }
  }
}
restore_article_version annotations
{
  "title": "Restore article version",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Sign-in required

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1376 ms
95th percentile latency
1376 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1376 ms · metadata changed · refuses unauthenticated resources/list (HTTP 401)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http dedox-mcp https://api.dedox.ai/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add dedox-mcp --url https://api.dedox.ai/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable dedox-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "dedox-mcp": {
      "url": "https://api.dedox.ai/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "dedox-mcp": {
      "type": "streamableHttp",
      "url": "https://api.dedox.ai/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start dedox-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "dedox-mcp": {
      "type": "http",
      "url": "https://api.dedox.ai/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http dedox-mcp https://api.dedox.ai/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "dedox-mcp": {
      "url": "https://api.dedox.ai/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "dedox-mcp": {
      "serverUrl": "https://api.dedox.ai/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Dedox MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Dedox MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing