KnowledgeOwl MCP by usefulapi
Server Details
Read and write knowledge-base articles, categories, snippets, glossary, readers, and search data.
- Status
- Healthy
- Uptime
- 71.8% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 24 tools
Tools mostly map one-to-one to distinct KnowledgeOwl resources and actions (articles, categories, glossary terms, snippets, readers, etc.). The only potential confusion is between list_article_revisions and list_article_versions, and knowledgeowl_request overlaps with any GET endpoint, but the descriptions are clear enough to keep them separate.
Nearly all tools follow a consistent create_/get_/list_/update_ + resource naming pattern. knowledgeowl_request breaks the verb_noun convention, but it is a single, clearly-labeled escape hatch rather than a systemic inconsistency.
At 24 tools, the server is on the heavy side and falls into the 16-25 range that feels dense. The breadth is justifiable given the many listable KnowledgeOwl resources, but several tools are list-only and add to the surface area without full lifecycle coverage.
Articles and categories have reasonable create/read/update coverage, but most other resources are list-only or create+list, and there are no delete tools anywhere. The read-only escape hatch cannot fill the gaps, so common lifecycle operations like deleting a snippet or updating a glossary term are missing.
Available Tools
24 toolscreate_articleCreate an articleDestructiveInspect
MUTATES KnowledgeOwl data: creates a new article. KnowledgeOwl API: POST /article.json (JSON). Required by the API: project_id, name, status, url_hash, visibility, and current_version (a nested object { <lang>: { title, body, ... } } — pass it via the fields passthrough). Returns the created article.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The article name/title (required). | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| status | No | Publishing status, e.g. "published", "draft", "review". | |
| url_hash | No | The article URL slug (e.g. "getting-started"). | |
| project_id | Yes | The knowledge base (project) id this article belongs to (required). | |
| visibility | No | Visibility, e.g. "public" or "private". |
create_categoryCreate a categoryDestructiveInspect
MUTATES KnowledgeOwl data: creates a new category (a node in the article tree). KnowledgeOwl API: POST /category.json (JSON). Required by the API: type, project_id, url_hash, name, visibility, status. Pass extra documented fields via fields. Returns the created category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The category name (required). | |
| type | No | The category type (e.g. "blank", "topic", "custom-content"). | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| status | No | Publishing status, e.g. "active". | |
| url_hash | No | The category URL slug. | |
| project_id | Yes | The knowledge base (project) id this category belongs to (required). | |
| visibility | No | Visibility, e.g. "public" or "private". |
create_glossary_termCreate a glossary termDestructiveInspect
MUTATES KnowledgeOwl data: creates a glossary term and definition. KnowledgeOwl API: POST /glossaryterm.json (JSON). Pass extra documented fields via fields. Returns the created glossary term.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | The glossary term (required). | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| definition | No | The term's definition. | |
| project_id | Yes | The knowledge base (project) id this glossary term belongs to (required). |
create_snippetCreate a snippetDestructiveInspect
MUTATES KnowledgeOwl data: creates a reusable content snippet. KnowledgeOwl API: POST /snippet.json (JSON). Pass the snippet body/content and any other documented field via fields (e.g. snippet_text/body). Returns the created snippet.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The snippet name (required). | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| project_id | Yes | The knowledge base (project) id this snippet belongs to (required). |
get_articleGet an articleRead-onlyInspect
Fetch a single article by id. KnowledgeOwl API: GET /article/{id}.json. Returns { valid, data:{...} }.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The article id (a Mongo-style hex string). |
get_categoryGet a categoryRead-onlyInspect
Fetch a single category by id. KnowledgeOwl API: GET /category/{id}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The category id (a Mongo-style hex string). |
get_readerGet a readerRead-onlyInspect
Fetch a single reader by id. KnowledgeOwl API: GET /reader/{id}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The reader id (a Mongo-style hex string). |
knowledgeowl_requestRaw read requestRead-onlyInspect
Power-user escape hatch: GET any KnowledgeOwl API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Pass the FULL API path after the base, starting with a slash, INCLUDING any query string, e.g. "/article.json?_page=2" or "/category/abc123.json". Returns the parsed JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Full API path after the base, starting with "/", e.g. "/article.json?_page=2". |
list_article_revisionsList article revisionsRead-onlyInspect
List article revision history (read-only audit trail). KnowledgeOwl API: GET /articlerevision.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_articlesList articlesRead-onlyInspect
List knowledge-base articles. KnowledgeOwl API: GET /article.json. Optionally filter by project_id (the knowledge base). Returns the list envelope { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). | |
| project_id | No | Filter to a single knowledge base (project) id. |
list_article_versionsList article versionsRead-onlyInspect
List article versions. KnowledgeOwl API: GET /articleversion.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_authorsList authorsRead-onlyInspect
List authors/agents (the team members who write and manage content). KnowledgeOwl API: GET /agent.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_categoriesList categoriesRead-onlyInspect
List categories (the article tree/table of contents). KnowledgeOwl API: GET /category.json. Optionally filter by project_id. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). | |
| project_id | No | Filter to a single knowledge base (project) id. |
list_commentsList commentsRead-onlyInspect
List reader comments / feedback on articles. KnowledgeOwl API: GET /comment.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_filesList filesRead-onlyInspect
List files in the file library (images/attachments). KnowledgeOwl API: GET /file.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_glossary_termsList glossary termsRead-onlyInspect
List glossary terms and definitions. KnowledgeOwl API: GET /glossaryterm.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_readersList readersRead-onlyInspect
List readers (knowledge-base end users / audience accounts). KnowledgeOwl API: GET /reader.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_snippetsList snippetsRead-onlyInspect
List reusable content snippets. KnowledgeOwl API: GET /snippet.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_suggestionsList search suggestionsRead-onlyInspect
List search suggestions / reader search analytics (what readers searched for). KnowledgeOwl API: GET /suggest.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_synonymsList synonymsRead-onlyInspect
List search synonyms (terms treated as equivalent by search). KnowledgeOwl API: GET /synonym.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_tagsList tagsRead-onlyInspect
List article tags. KnowledgeOwl API: GET /tag.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
list_webhooksList webhooksRead-onlyInspect
List configured webhooks. KnowledgeOwl API: GET /webhook.json. Returns { valid, page_stats, data:[...] }.
| Name | Required | Description | Default |
|---|---|---|---|
| _page | No | KnowledgeOwl pagination page number, 1-based. | |
| params | No | Additional documented query-string filters/operators to send verbatim (merged with the typed params above). |
update_articleUpdate an articleDestructiveInspect
MUTATES KnowledgeOwl data: updates an existing article. KnowledgeOwl API: PUT /article/{id}.json (JSON — only included fields change). Use the fields passthrough for current_version (title/body) and any other documented field. The path id is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The article id to update (path only; required). | |
| name | No | New article name/title. | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| status | No | New publishing status. | |
| url_hash | No | New URL slug. | |
| visibility | No | New visibility. |
update_categoryUpdate a categoryDestructiveInspect
MUTATES KnowledgeOwl data: updates an existing category. KnowledgeOwl API: PUT /category/{id}.json (JSON — only included fields change). Use the fields passthrough for any other documented field. The path id is never sent in the body.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The category id to update (path only; required). | |
| name | No | New category name. | |
| fields | No | Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above. | |
| status | No | New publishing status. | |
| url_hash | No | New URL slug. | |
| visibility | No | New visibility. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
24 tool updates
- Changed
create_article1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
create_category1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
create_glossary_term1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
create_snippet1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_article1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_category1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_reader1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
knowledgeowl_request1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
list_article_revisions3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_article_versions3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_articles3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_authors3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_categories3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_comments3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_files3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_glossary_terms3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_readers3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_snippets3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_suggestions3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_synonyms3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_tags3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
list_webhooks3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / properties / params / additionalProperties / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } -] - added
Input schema / properties / params / additionalProperties / typeAdded value: +[ + "string", + "number", + "boolean" +]
- Changed
update_article1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
update_category1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
24 tool updates
- First observed
create_article - First observed
create_category - First observed
create_glossary_term - First observed
create_snippet - First observed
get_article - First observed
get_category - First observed
get_reader - First observed
knowledgeowl_request - First observed
list_article_revisions - First observed
list_article_versions - First observed
list_articles - First observed
list_authors - First observed
list_categories - First observed
list_comments - First observed
list_files - First observed
list_glossary_terms - First observed
list_readers - First observed
list_snippets - First observed
list_suggestions - First observed
list_synonyms - First observed
list_tags - First observed
list_webhooks - First observed
update_article - First observed
update_category
Related MCP Connectors
Read tickets, contacts, companies, agents and groups; create, update and reply to tickets.
Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.
Read spaces, collections, pages and content; search docs and manage GitBook organization spaces.
Write, edit, translate and publish blog and help-center articles across all your sites.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables agents to search, read, list, and amend a git-backed markdown knowledge base, automatically committing and publishing changes.4MIT
- AlicenseBqualityBmaintenanceEnables Claude to read and analyze Zendesk tickets, full conversations, and Help Center content, and to export large ticket sets, with read-only mode and optional write operations.531MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude, Cursor, ChatGPT and other AI agents to search and read a Helpjuice knowledge base, draft and update articles, and audit stale content through the Helpjuice API.MIT
- FlicenseNot gradedqualityDmaintenanceGives Claude access to your Help Scout knowledge base for listing collections, articles, and searching content.-
Glama MCP Gateway
Add one secure layer between your agents and this server.