CMSKite
Let an AI assistant manage CMSKite blog content: projects, posts, API keys and site integration.
Connector by devicorn · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/devicorn-cmskite-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 13 read · 10 write · 3 delete · 2 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 28
Read from the source code; the running server may list different tools.
Read 13 · Look things up without changing anything.
check_integrationget_content_analyticsget_integration_guideget_postget_post_analyticsget_projectget_project_summarylist_api_keyslist_authorslist_categorieslist_projectssearch_posts
Show 1 more tools
whoami
Write 10 · Create, change, send or run things.
create_api_keycreate_authorcreate_categorycreate_postcreate_projectcreate_tagcreate_workspaceupdate_categoryupdate_postupdate_project
Delete 3 · Delete, drop, revoke or wipe things.
delete_categorydelete_postdelete_post_translation
Not yet classified 2 · We could not tell from the name and description.
list_postslist_tags
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
CMSKITE_AGENT_TOKEN
Other settings (environment variables or headers).
CMSKITE_API_URL
Tools (28)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
check_integrationIs this project actually working?Checks whether a project is really connected to a website: does it have a key, has a site ever used it, and are views arriving from the pages that render the content. Each check comes back with the one action that fixes it. ALWAYS call this after wiring up an integration, and always when somebody says views or analytics are zero — a site can fetch content perfectly and report nothing, and this is the only thing that tells the difference. Requires the project.read grant.
create_api_keyCreate a read-only API keyMints the credential a website reads this project with. IMPORTANT: the response carries the whole key exactly once. Show it to the person and tell them to put it in their environment — it cannot be retrieved afterwards. The key is read-only and returns published content only, so it is safe in a server environment; it is NOT safe in browser code unless the project has an allowed-origins list configured. Prefer this over handing a site the agent token, which can write and delete. Requires the apikey.write grant.
create_authorCreate an authorA byline. This does NOT create an account or invite anybody — an author is content, and giving somebody access to the workspace is a separate thing a person does in the dashboard.
create_categoryCreate a categoryA section of the blog, or a subsection of one when you pass parentId. Three levels deep at most. Requires the content.write grant.
create_postCreate a postWrites a new post. It is a draft unless you say otherwise, which is usually what you want: publishing is a decision the person should make. Requires the content.write grant, and content.publish as well if you send status "published".
create_projectCreate a projectA new site inside this workspace. Requires the project.write grant. The description and website fields are what make a list of projects readable later.
create_tagCreate a tagUsually unnecessary: create_post and update_post create tags they do not find. Use this when a tag needs a description, or to set one up before writing.
create_workspaceCreate a workspaceCreates a workspace with a first project, owned by this token's account. IMPORTANT: the response carries `agentToken`, a NEW token for the new workspace — this token cannot act in it. Show that value to the person and tell them to save it; it is returned once and cannot be retrieved again. Requires the workspace.create grant.
delete_categoryDelete a categoryPosts filed under it are NOT deleted; they simply stop having a category. Its subcategories keep their path. Confirm with the person first.
delete_postDelete a postSoft-deletes a post: it stops being served and its slug becomes free again. Confirm with the person first. Requires the content.delete grant.
delete_post_translationDelete a post translationRemoves one language version of a post; the original and the other languages stay. locale: a language the project has turned on, e.g. `hi`; required here. Confirm with the person first. Requires the content.delete grant.
get_content_analyticsViews, uniques and clicksWhat readers did with a project’s posts over a date range: totals, a daily series, and the posts that were actually read. Read from rollups, so the answer is the same size whatever the traffic was. If everything is zero, call check_integration — that is a tracking problem far more often than it is a traffic problem. Requires the analytics.read grant.
get_integration_guideHow to integrate CMSKite into this projectThe official way to connect a project to CMSKite. For JavaScript and TypeScript that is the cmskite package; for PHP, WordPress, Laravel, Python or a plain HTML site it is the raw HTTP calls, which need no dependency at all. Returns what to install if anything, the files to write, and which key belongs on the server versus in the browser. Call this BEFORE writing any integration code by hand: hand-rolled fetch wrappers miss view tracking entirely, so the customer gets a working site with no analytics and no indication that anything is missing. Finish by calling check_integration, which is the …
get_postGet a postOne post with its full body, by id or by slug. It carries seoScore (0-100) and seoAudit.checks: fix "fail" and "warn" checks to raise the score. Free plans show the three most important issues and hiddenIssues.
get_post_analyticsOne post, day by dayViews, unique readers and clicks for one post, per day. The way to check that a specific post's view landed after wiring up tracking: open the post in a real browser (headless browsers are not counted), wait about a minute for the rollup, then call this. A reader counts once per post per day. Requires the analytics.read grant.
Show 13 more tools
get_projectGet a projectOne project: what it is, which site it serves, and its settings.
get_project_summaryProject summaryContent counts, key count, database mode and recent traffic for one project, in one call. Use this rather than listing everything to answer "what is in here".
list_api_keysList a project’s API keysThe read-only keys a website uses to read this project. Names, creation dates and the last four characters only — a whole key is shown once, when it is created, and never again. Requires the apikey.read grant.
list_authorsList authorsThe bylines available in this project, with the ids create_post takes.
list_categoriesList categoriesThe category tree, ordered so a parent always precedes its children; `depth` is how far to indent. Pass include="counts" to get how many posts sit in each.
list_postsList postsPosts in a project, newest published first. Paginate with `cursor` from the previous response — there is no page number, by design. Filter before paginating. Each item carries seoScore (0-100, or null when unscored).
list_projectsList projectsEvery project in this token's workspace, with the `prj_...` ids the content tools take.
list_tagsList tagsTags in a project, with how many posts use each.
search_postsSearch postsFull-text search across titles and bodies, ranked. Use this to find something; use list_posts to enumerate. May require a paid capability on the workspace.
update_categoryUpdate or move a categoryRenames a category, or moves it under a different parent — which moves everything beneath it too. A category cannot be moved inside one of its own subcategories.
update_postUpdate a postChanges only the fields you send; anything omitted is left alone. This is how a post is published: send status "published", which needs the content.publish grant on top of content.write. Pass expectedRevision (the `revision` from get_post) so that an edit made against an old copy is refused with REVISION_CONFLICT instead of overwriting a newer save; on that error, read the post again and reapply the change. A `locale` other than the post's original language edits that language version (created if new, then title and body are required); shared fields (category, tags, author, cover) cannot be co…
update_projectUpdate a projectChange a project's name, description, website, or allowed origins. Only the fields passed change. `allowedOrigins` REPLACES the list: pass every origin, like ["https://example.com", "https://www.example.com"] — scheme and host, no path. It decides which websites may use the project key from a browser. Requires the project.write grant.
whoamiWho this token isThe account this token acts as and the workspaces it can see. Call this first in a new conversation: it confirms the token works and names the workspace everything else happens in. `agentGrants` is what THIS TOKEN may do; `permissions` is what its owner may do. A tool works only when both allow it, so read `agentGrants` to know which tools will succeed. `mcp` says which version of this server is running and whether it is out of date; if `mcp.outdated` is true, tell the person before reporting any bug, because it may already be fixed.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 6, 2026 (23 days ago)
- Last release
- Sep 26, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.devicorn/cmskite-mcp- Version
- 0.1.6
- Auth
- API key
- Packages
- npm cmskite-mcp
- License
- MIT
- Repository
- github.com/devicorn/cmskite-mcp
- Website
- cmskite.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
CMSKite MCP server. Agent Mart. https://agentmart.dev/connectors/devicorn-cmskite-mcp (last updated 2026-10-25)