Connect an assistant (MCP)
Let Claude write posts, update pages and read forms for one organization.
1 min readUpdated View as Markdown
The Model Context Protocol (MCP) server lets an AI assistant work with one organization using that organization's secret key. Every tool call goes through the same checks as the API: key, organization status, secret-only admin routes, rate limits and personal-data gates. The key cannot reach any other organization.
1. Make a key for the assistant
In the dashboard, open Developers → API keys and create a key just for the assistant, named for it ("Claude, John's laptop"). Then you can see its traffic separately and revoke it alone.
2. Connect
claude mcp add --transport http dashfordevs https://papi.dashfordevs.com/mcp/org \
--header "Authorization: Bearer sk_live_YOUR_SECRET_KEY"Clients that only accept a URL (some connectors):
https://papi.dashfordevs.com/mcp/org/sk_live_YOUR_SECRET_KEYA key in a URL can end up in logs. Prefer the header form; if you must use the URL, use a dedicated key and regenerate it if it is ever shared.
The dashboard's MCP page (sidebar: MCP → MCP server) shows these snippets and the live tool list.
3. Tools
| Tool | Does |
|---|---|
org_info |
The organization the key belongs to. |
blog_list, blog_get |
Read posts (list without bodies; one with its HTML). |
blog_create, blog_update, blog_delete |
Write posts. Bodies are HTML; code as <pre><code class="language-x">. |
blog_categories, blog_category_create |
Categories for posts. |
page_groups_list, page_group_create |
Page groups (content types). Create is idempotent by slug. |
page_items_list, page_item_get |
Read items in a page group. |
page_item_create, page_item_update, page_item_delete |
Write items, with their custom fields. |
contact_forms_list, contact_form_get |
Read contact form submissions (personal data: held back by the personal-data gate where it applies). |
admin_endpoints |
List every admin API route the key can call. |
admin_request |
Call one of those routes directly, for anything not covered above. |
Good prompts
- "Draft a blog post about our spring menu in the Seasonal category. Keep it as a draft."
- "List the items in the Services page group and fix any description over 160 characters."
- "Summarize this week's contact form submissions by topic, without quoting names or emails."
Keep reading
Something wrong or missing on this page? Email support@dashfordevs.com.