velocms-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_postsA | Lists blog posts for the authenticated tenant, paginated (default 20/page, max 100). Optionally filter by status (draft or published). Requires the posts:read API key scope. |
| get_postA | Fetches a single post by its PocketBase record ID, including content_html/content_json and SEO fields. Requires the posts:read scope. |
| create_postA | Creates a new blog post. Defaults to status=draft — pass status=published to publish immediately (stamps published_at automatically), or create as a draft and call publish_post once you're ready. Requires the posts:write scope. |
| update_postA | Partially updates an existing post — only the fields you pass are changed. Requires at least one field besides id. Requires the posts:write scope. |
| delete_postA | Permanently deletes a post by ID. Requires the posts:write scope. |
| publish_postA | Sets a post's status to published (stamps published_at). Shorthand for update_post({ status: 'published' }). Requires the posts:write scope. |
| unpublish_postA | Sets a post's status back to draft, taking it off the public site. Shorthand for update_post({ status: 'draft' }). Requires the posts:write scope. |
| list_mediaA | Lists items in the media library, paginated. Optionally filter by MIME type prefix (e.g. 'image'). Requires the media:read scope. |
| list_commentsA | Lists comments, paginated. Optionally filter to a specific post (postId) and/or by moderation status (approved, pending, spam). Requires the comments:read scope. |
| moderate_commentA | Sets a comment's moderation status (approved, pending, or spam). Requires the comments:moderate scope. |
| list_membersA | Lists reader/subscriber records, paginated. Email local parts are masked by the API (e.g. u***@example.com). Optionally filter by tier (free or paid). Requires the members:read scope. |
| get_site_settingsA | Fetches the tenant's site configuration (name, description, logo, favicon, members/comments enabled flags). Encrypted fields (Stripe keys, AI API key) are always excluded by the API. Requires the site-settings:read scope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct resource and action: post CRUD, publish state transitions, media listing, comment moderation, member listing, and site settings retrieval. No two tools overlap in purpose.
All tools follow a consistent snake_case verb_noun pattern (get_, create_, list_, update_, delete_, publish_, unpublish_, moderate_). The consistent use of singular/plural nouns is conventional and readable.
12 tools is well-scoped for a CMS. Post lifecycle is fully represented, and the addition of media, comments, members, and settings covers the main auxiliary resources without unnecessary bloat.
Post CRUD and publishing workflow are complete, but media only supports listing, site settings only get, and comments lack deletion. These read-only surfaces create dead ends for agents trying to manage those resources.