LOCALSOURCE

Local Source Connect Console

Connect your agent to local business data.

Choose your coding agent, copy one setup prompt, and approve the secure browser sign-in. Your agent follows the live instructions and verifies the Local Source tools.

Connect an agent

Hosted MCP

Let your agent set it up

Set up Local Source in Codex. Follow https://app.getlocalsource.com/auth.md to use the verified device sign-in, then follow https://app.getlocalsource.com/agent-quickstart.md to configure hosted MCP. Do not ask me to copy or paste an API key; collect it from the device flow and store it securely yourself.
Server
https://app.getlocalsource.com/api/mcp
Auth
Verified device sign-in
Status
Not connected until the tool test passes
ManualCreate or paste a key, configure raw MCP/REST, and test requests yourself.

Manual API key

Verified account

Sign in by email before creating or replacing a manual API key.

Replacing a key revokes the prior self-service key. The browser stores a pasted or newly created manual key only on this device.

Test the API

Playground results

Create or paste an API key, then run a search.

REST example

curl -s https://app.getlocalsource.com/api/v1/places/search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"categories":["dentist"],"states":["MI"],"require_website":true,"limit":5}'

Cursor config · ~/.cursor/mcp.json

{
  "mcpServers": {
    "local-source": {
      "url": "https://app.getlocalsource.com/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Manual setup only. Merge local-source into the existing file; never replace other MCP servers.

Example task

Use Local Source.

First, call list_categories with query="dent" and limit=5.

Then search for 10 HVAC contractors in Michigan that have websites.

Return a table with:
- name
- address
- city
- state
- postal_code
- country
- website_url
- rating
- review_count
- business_status

Do not omit any of those columns. Use an em dash when a returned value is null.

If you hit a rate limit, wait according to retry_after_seconds or tell me the retry_after_seconds value.