MCP Quickstart
Get connected to the Raven Docs MCP server in 5 minutes.
Prerequisites
- A Raven Docs account with API access
- An MCP-compatible AI client (Claude, custom agent, etc.)
Step 1: Get an API Key
- Go to Settings → API Keys
- Click Create API Key
- Name it (e.g., "MCP Agent")
- Copy the key
Step 2: Configure Your Client
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"raven-docs": {
"url": "http://localhost:3000/api/mcp-standard",
"transport": "http",
"headers": {
"Authorization": "Bearer raven_sk_your_key_here"
}
}
}
}
Custom MCP Client
import { MCPClient } from '@modelcontextprotocol/sdk';
const client = new MCPClient({
serverUrl: 'http://localhost:3000/api/mcp-standard',
headers: {
'Authorization': `Bearer ${process.env.RAVEN_API_KEY}`,
},
});
// Initialize connection
await client.initialize();
// List available tools
const tools = await client.listTools();
Step 3: Test the Connection
List Categories
curl -X POST "http://localhost:3000/api/mcp-standard/list_categories" \
-H "Authorization: Bearer YOUR_API_KEY"
Expected response:
{
"categories": [
{ "id": "page", "name": "Page Management", "toolCount": 14 },
{ "id": "task", "name": "Task Management", "toolCount": 11 },
...
]
}
Search for Tools
curl -X POST "http://localhost:3000/api/mcp-standard/search_tools" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "create page" }'
Call a Tool
curl -X POST "http://localhost:3000/api/mcp-standard/call_tool" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "space_list",
"arguments": {
"workspaceId": "ws_your_workspace_id"
}
}'
Step 4: Use with an Agent
Simple Example
import { MCPClient } from '@modelcontextprotocol/sdk';
import Anthropic from '@anthropic-ai/sdk';
const mcp = new MCPClient({
serverUrl: 'http://localhost:3000/api/mcp-standard',
headers: { 'Authorization': `Bearer ${RAVEN_API_KEY}` },
});
const anthropic = new Anthropic();
// Get available tools
const { tools } = await mcp.listTools();
// Run agent with tools
const response = await anthropic.messages.create({
model: 'claude-3-5-sonnet-20241022',
messages: [
{ role: 'user', content: 'List all spaces in my workspace' }
],
tools: tools.map(t => ({
name: t.name,
description: t.description,
input_schema: t.inputSchema,
})),
});
// Handle tool calls
for (const block of response.content) {
if (block.type === 'tool_use') {
const result = await mcp.callTool(block.name, block.input);
console.log(result);
}
}
Environment Variables
We recommend using environment variables for credentials:
# .env
RAVEN_API_KEY=raven_sk_your_key_here
RAVEN_WORKSPACE_ID=ws_your_workspace_id
const mcp = new MCPClient({
serverUrl: 'http://localhost:3000/api/mcp-standard',
headers: {
'Authorization': `Bearer ${process.env.RAVEN_API_KEY}`,
},
});
Common Issues
401 Unauthorized
- Check that your API key is correct
- Ensure the key hasn't been revoked
- Verify the Authorization header format
403 Forbidden
- The user who created the API key may lack permissions
- Check workspace membership
Tool Not Found
- Use
search_toolsto find the correct tool name - Tool names use underscores (e.g.,
page_createnotpageCreate)
Next Steps
- Tool Search - Discover available tools
- Examples - More code examples
- Authentication - Advanced auth options