Blake

Developers

Drive Blake from anywhere your code or your agent runs.

One workspace API key gets you the REST API and the MCP server. Same auth, same scopes, same rate limit. Copy a snippet, paste your key, and you're writing notes, moving stages, and dropping leads into the pipeline from whatever tool you live in.

How it works

REST for scripts

Plain JSON over HTTPS at /api/v1/*. Bearer auth, cursor pagination, idempotency keys on writes. Every endpoint is workspace-scoped by the key you send.

MCP for agents

Streaming-HTTP MCP at /api/mcp. Drops 19 typed tools into Claude Code, Claude Desktop, Cursor, and any MCP-aware client. Scopes you grant the key are the scopes the tools see.

Granular scopes

Pick exactly what an integration needs. notes:write for a meeting-summary agent; leads:write for a scraper. Revoke a key in one click; activity history stays attached to the key's label.

Tested isolation

Workspace boundary is the same Postgres-enforced boundary that the human UI runs on. Every API call resolves the workspace from the key, then queries with that filter. There is no “global” endpoint.

30-second setup

  1. 1. Create a key. In Blake, open Settings → API keys. Pick scopes; copy the raw key.
  2. 2. Pick a snippet below. Paste your key. The same key works against REST and MCP.
  3. 3. Call something. /api/v1/me for REST, tools/list for MCP. If you get JSON back, you're wired up.

Snippets

Replace <your-key> with the raw key from Settings. The key is shown exactly once at creation, so capture it then.

Claude Code (one-liner)

Adds Blake to the local project's MCP servers.

claude mcp add --transport http blake \
  https://app.blakecloses.com/api/mcp \
  -H "Authorization: Bearer <your-key>"

.mcp.json (Claude Desktop, Cursor, MCP-aware clients)

Drop into your client's MCP config file.

{
  "mcpServers": {
    "blake": {
      "type": "http",
      "url": "https://app.blakecloses.com/api/mcp",
      "headers": {
        "Authorization": "Bearer <your-key>"
      }
    }
  }
}

REST (cURL)

Same key, plain HTTPS. Returns the workspace and key the bearer is bound to.

curl -H "Authorization: Bearer <your-key>" \
  https://app.blakecloses.com/api/v1/me

What you can do

Nineteen MCP tools, mapped one-to-one to REST resources. Pick the scopes that match the columns you want to touch.

Notes

  • add_note
  • list_notes
  • delete_note

Tasks

  • create_task
  • list_tasks
  • get_task
  • update_task
  • complete_task
  • delete_task

Documents

  • upload_document
  • list_documents
  • delete_document

Pipeline

  • list_opportunities
  • get_opportunity
  • move_stage

People

  • upsert_contact
  • upsert_company

Lead capture

  • create_lead
  • search

Reference

OpenAPI 3.1 spec
Full machine-readable schema for every REST endpoint, with per-operation scopes under x-blake-scopes. app.blakecloses.com/api/v1/openapi.json
Rate limit
60 requests per minute per key by default. Each response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
Idempotency
Send Idempotency-Key on any write. Same key + same body within 24 hours replays the cached response; same key + different body returns 409.
Errors
Standard HTTP status plus a JSON envelope: { error: { code, message, details? } }. MCP returns the same content as an isError tool result so the model sees it inline.

Build with it.

Request a workspace and you'll have a key to ship against inside the hour.