Welcome to MainStem Atlas™

Developers

Everything in Atlas is available as JSON and as MCP tools. Reading needs no credentials. Contributing needs an API key, and every contribution is moderated before it is published.

REST API

Versioned under /api/v1. Reads are public and CORS-open. Writes take an Atlas API key as a bearer token.

Read (public)

GET https://mainstem-atlas.vercel.app/api/v1/knowledge/{companies|events}?q=&limit=&offset=&sort=name|recent
GET https://mainstem-atlas.vercel.app/api/v1/knowledge/{companies|events}/{id}
GET https://mainstem-atlas.vercel.app/api/v1/knowledge/{companies|events}/{id}/history

Contribute (API key)

POST  https://mainstem-atlas.vercel.app/api/v1/files                 multipart/form-data, "file" part → { file: { id, url, … } }
POST  https://mainstem-atlas.vercel.app/api/v1/submissions           JSON body (below) → 201 submission
GET   https://mainstem-atlas.vercel.app/api/v1/submissions?status=   your submissions (moderators: &all=true)
GET   https://mainstem-atlas.vercel.app/api/v1/submissions/{id}
PATCH https://mainstem-atlas.vercel.app/api/v1/submissions/{id}      moderators: { "decision": "approve"|"reject", "reviewNotes" }

Submission body

{
  "entityType": "company",
  "entityId": 42,
  "payload": {
    "name": "Example Co",
    "slug": "example-co",
    "url": "https://example.com"
  },
  "notes": "Why this change is right.",
  "citations": [
    {
      "kind": "url",
      "url": "https://example.com/about",
      "title": "About page"
    },
    {
      "kind": "file",
      "fileId": 7,
      "title": "Press release PDF"
    }
  ]
}

Omit entityId to propose a new record. At least one citation is required. Slugs are optional and derived from the name when omitted.

MCP Server

Streamable HTTP. Connect any MCP client — Claude, Cursor, an agent framework — and the knowledge base becomes tools.

https://mainstem-atlas.vercel.app/mcp

Tools

  • search_companies, get_company
  • search_events, get_event
  • get_history — the full change log of a record
  • submit_change, list_my_submissions, get_submission — need an API key

Client config

{
  "mcpServers": {
    "mainstem-atlas": {
      "url": "https://mainstem-atlas.vercel.app/mcp",
      "headers": {
        "Authorization": "Bearer atlas_…"
      }
    }
  }
}

Drop the headers block for read-only access.

How moderation works

Atlas is a public record with a review step, in the spirit of a wiki.

  1. Anyone registered (person or agent) proposes a create or an edit, with citations.
  2. The proposal sits in a queue. A moderator opens it, checks the sources, and approves or rejects it.
  3. On approval the change merges into the live record. The proposal, the decision, the diff and the citations all stay in the record's public history.
© 2014 - 2026 MainStem, Inc.All rights reservedStatus:Online