Dashword MCP Server
Dashword is available as a remote MCP server, so Claude, Cursor, and any other MCP client can research a keyphrase and score a draft without leaving the editor.
The loop it gives your agent is brief → write → score → revise:
create_report— analyse the pages currently ranking for a keyphrase.get_report— get the terms to cover, the questions to answer, and the target length.score_content— score the draft against that brief, then revise and score again. Scoring is free and unlimited.
The MCP server is included on every plan, including free accounts. So is the REST API — neither is gated behind a paid tier any more.
Requirements
- A Dashword account with a verified email address.
- An API key from your API tokens page.
- An MCP client that supports remote servers over Streamable HTTP with a custom
Authorizationheader (Claude Code and Cursor do; see Claude Desktop for stdio-only clients).
Server URL
https://app.dashword.com/mcp
Requests are authenticated with the same bearer key as the REST API:
Authorization: Bearer YOUR_API_KEY
Installation
Claude Code
claude mcp add --transport http dashword \
https://app.dashword.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Then run /mcp inside Claude Code to confirm the connection.
Cursor
Add Dashword to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
{
"mcpServers": {
"dashword": {
"url": "https://app.dashword.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Claude Desktop
Claude Desktop connects through the mcp-remote bridge. Add this to claude_desktop_config.json, then restart the app:
{
"mcpServers": {
"dashword": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.dashword.com/mcp",
"--header",
"Authorization: Bearer YOUR_API_KEY"
]
}
}
}
The same config works for any other MCP client that only speaks stdio.
Tools
create_report
Starts a new content report for a keyphrase. Analyses the pages currently ranking for it and builds a brief of the terms, questions, and length you need to compete.
Returns immediately with a report_id. The report takes roughly 90 seconds to build, so your agent should wait before polling get_report.
Parameters
keyphraserequired - The search phrase you want the article to rank forcountryoptional - Two-letter code from the available countries. Defaults tous
Returns
{
"report_id": "DVGR4qZKyva",
"status": "processing",
"estimated_seconds": 90
}
Costs one report credit. If the report fails to build, the credit is refunded.
get_report
Fetches a report by id. While it is still building, status is processing and no brief is returned yet.
Once status is completed you get up to 50 terms to cover with how often to use each, up to 20 questions the article should answer, the target word count, and the pages currently ranking.
Parameters
report_idrequired - The id returned bycreate_report
Returns
{
"report_id": "DVGR4qZKyva",
"status": "completed",
"keyphrase": "keto diet",
"country": "us",
"target_word_count": 1450,
"terms": [
{
"term": "weight loss",
"importance": 100,
"min_occurrences": 2,
"max_occurrences": 4
}
],
"questions": [
"What can you eat on the keto diet?"
],
"competitors": [
{
"url": "https://www.example.com/1",
"position": 1,
"word_count": 558
}
]
}
Free.
list_reports
Lists reports you have already created, newest first. Use it to find the report_id of an earlier report.
Parameters
keyphraseoptional - Only return reports whose keyphrase contains this textlimitoptional - How many reports to return. Defaults to 10, maximum 50
Returns
{
"reports": [
{
"report_id": "DVGR4qZKyva",
"keyphrase": "keto diet",
"country": "us",
"status": "completed",
"created_at": "2026-08-01T09:12:44+00:00"
}
]
}
Free.
score_content
Scores a draft against a completed report. Returns an overall score and grade, plus per-term coverage showing how many times you used each term and how many times you should.
This is the draft → score → revise loop, so call it as often as you like.
Parameters
report_idrequired - The report to score againstmarkdownrequired - The full draft, as markdown or plain text
Returns
{
"report_id": "DVGR4qZKyva",
"score": 82,
"grade": "B+",
"word_count": 1380,
"target_word_count": 1450,
"readability": "8th & 9th grade",
"terms": [
{
"term": "keto diet",
"occurrences": 6,
"min_occurrences": 2,
"has_enough_usage": true
},
{
"term": "low carb diet",
"occurrences": 1,
"min_occurrences": 2,
"has_enough_usage": false
}
]
}
Free and unlimited — scoring never costs a credit.
Credits and rate limits
- One report credit is charged per completed
create_report. A report that fails to build is refunded. get_report,list_reports, andscore_contentare free and do not touch your credit balance.- The MCP server allows 300 requests per hour per API key.
Your monthly credits come with your plan — see pricing.
Raw REST API
Everything the MCP server does is also available over plain HTTP if you would rather call it from your own code. See the API documentation.