KnowledgeOwl MCP by usefulapi

Read and write knowledge-base articles, categories, snippets, glossary, readers, and search data.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'knowledgeowl_list_glossary_terms' name length outside 3-30 rangein knowledgeowl_list_glossary_terms
  • LOWTool 'knowledgeowl_list_article_versions' name length outside 3-30 rangein knowledgeowl_list_article_versions
  • LOWTool 'knowledgeowl_list_article_revisions' name length outside 3-30 rangein knowledgeowl_list_article_revisions
  • LOWTool 'knowledgeowl_create_glossary_term' name length outside 3-30 rangein knowledgeowl_create_glossary_term

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,342Tokens (tool definitions)
~1.4 KBTypical response size
Significant attention impact (3.39% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "knowledgeowl": {
      "url": "https://knowledgeowl.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://knowledgeowl.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (24)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢knowledgeowl_list_articles(project_id, _page, params)

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:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "description": "Filter to a single knowledge base (project) id.",
      "type": "string"
    },
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_get_article(id)

Fetch a single article by id. KnowledgeOwl API: GET /article/{id}.json. Returns { valid, data:{...} }.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The article id (a Mongo-style hex string)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_categories(project_id, _page, params)

List categories (the article tree/table of contents). KnowledgeOwl API: GET /category.json. Optionally filter by project_id. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "description": "Filter to a single knowledge base (project) id.",
      "type": "string"
    },
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_get_category(id)

Fetch a single category by id. KnowledgeOwl API: GET /category/{id}.json.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The category id (a Mongo-style hex string)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_tags(_page, params)

List article tags. KnowledgeOwl API: GET /tag.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_snippets(_page, params)

List reusable content snippets. KnowledgeOwl API: GET /snippet.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_glossary_terms(_page, params)

List glossary terms and definitions. KnowledgeOwl API: GET /glossaryterm.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_comments(_page, params)

List reader comments / feedback on articles. KnowledgeOwl API: GET /comment.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_readers(_page, params)

List readers (knowledge-base end users / audience accounts). KnowledgeOwl API: GET /reader.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_get_reader(id)

Fetch a single reader by id. KnowledgeOwl API: GET /reader/{id}.json.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The reader id (a Mongo-style hex string)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_files(_page, params)

List files in the file library (images/attachments). KnowledgeOwl API: GET /file.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_article_versions(_page, params)

List article versions. KnowledgeOwl API: GET /articleversion.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_article_revisions(_page, params)

List article revision history (read-only audit trail). KnowledgeOwl API: GET /articlerevision.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_suggestions(_page, params)

List search suggestions / reader search analytics (what readers searched for). KnowledgeOwl API: GET /suggest.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_synonyms(_page, params)

List search synonyms (terms treated as equivalent by search). KnowledgeOwl API: GET /synonym.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_webhooks(_page, params)

List configured webhooks. KnowledgeOwl API: GET /webhook.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_list_authors(_page, params)

List authors/agents (the team members who write and manage content). KnowledgeOwl API: GET /agent.json. Returns { valid, page_stats, data:[...] }.

Input Schema

{
  "type": "object",
  "properties": {
    "_page": {
      "description": "KnowledgeOwl pagination page number, 1-based.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "params": {
      "description": "Additional documented query-string filters/operators to send verbatim (merged with the typed params above).",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢knowledgeowl_request(path)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "Full API path after the base, starting with \"/\", e.g. \"/article.json?_page=2\"."
    }
  },
  "required": [
    "path"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_create_article(project_id, name, status, url_hash, visibility, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "The knowledge base (project) id this article belongs to (required)."
    },
    "name": {
      "type": "string",
      "description": "The article name/title (required)."
    },
    "status": {
      "description": "Publishing status, e.g. \"published\", \"draft\", \"review\".",
      "type": "string"
    },
    "url_hash": {
      "description": "The article URL slug (e.g. \"getting-started\").",
      "type": "string"
    },
    "visibility": {
      "description": "Visibility, e.g. \"public\" or \"private\".",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "project_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_update_article(id, name, status, url_hash, visibility, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The article id to update (path only; required)."
    },
    "name": {
      "description": "New article name/title.",
      "type": "string"
    },
    "status": {
      "description": "New publishing status.",
      "type": "string"
    },
    "url_hash": {
      "description": "New URL slug.",
      "type": "string"
    },
    "visibility": {
      "description": "New visibility.",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_create_category(project_id, name, type, status, url_hash, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "The knowledge base (project) id this category belongs to (required)."
    },
    "name": {
      "type": "string",
      "description": "The category name (required)."
    },
    "type": {
      "description": "The category type (e.g. \"blank\", \"topic\", \"custom-content\").",
      "type": "string"
    },
    "status": {
      "description": "Publishing status, e.g. \"active\".",
      "type": "string"
    },
    "url_hash": {
      "description": "The category URL slug.",
      "type": "string"
    },
    "visibility": {
      "description": "Visibility, e.g. \"public\" or \"private\".",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "project_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_update_category(id, name, status, url_hash, visibility, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The category id to update (path only; required)."
    },
    "name": {
      "description": "New category name.",
      "type": "string"
    },
    "status": {
      "description": "New publishing status.",
      "type": "string"
    },
    "url_hash": {
      "description": "New URL slug.",
      "type": "string"
    },
    "visibility": {
      "description": "New visibility.",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_create_snippet(project_id, name, fields)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "The knowledge base (project) id this snippet belongs to (required)."
    },
    "name": {
      "type": "string",
      "description": "The snippet name (required)."
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "project_id",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴knowledgeowl_create_glossary_term(project_id, term, definition, fields)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "The knowledge base (project) id this glossary term belongs to (required)."
    },
    "term": {
      "type": "string",
      "description": "The glossary term (required)."
    },
    "definition": {
      "description": "The term's definition.",
      "type": "string"
    },
    "fields": {
      "description": "Additional documented KnowledgeOwl fields to send in the JSON write body (e.g. current_version, body) — merged OVER the typed fields above.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "project_id",
    "term"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
verifiedversion not recorded24 tools
failed observationversion not recorded—
failed observationversion not recorded—