> ## Documentation Index
> Fetch the complete documentation index at: https://docs.northaxiumdata.ca/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server

> Connect ChatGPT, Claude, Cursor, and other AI agents to NorthAxium Data with hosted MCP.

NorthAxium Data provides a hosted MCP server for AI agents. Connect once with OAuth, then ask questions about Canadian procurement, grants, lobbying, political contributions, Parliament, building permits, zoning, and Edmonton properties in natural language.

```txt theme={null}
https://mcp.northaxiumdata.ca/mcp
```

<Info>
  The hosted MCP server is included on every NorthAxium Data tier. It uses the same account usage limits as the REST API.
</Info>

## What MCP does

MCP (Model Context Protocol) lets AI applications call approved tools from a remote service. The NorthAxium Data MCP server exposes read-only tools backed by public Canadian government, municipal, and open-data records.

The MCP server does not access private records, personal accounts, or non-public location data. It does not require a local config file or a user-created API key.

## Supported clients

| Client                   | Status                                                  | Connection method       |
| ------------------------ | ------------------------------------------------------- | ----------------------- |
| ChatGPT                  | Supported as a plugin in developer mode                 | Hosted MCP URL + OAuth  |
| Claude                   | Supported as a custom connector                         | Hosted MCP URL + OAuth  |
| Cursor                   | Supported as a remote MCP server                        | Hosted MCP URL + OAuth  |
| Other remote MCP clients | Supported when the client supports remote MCP and OAuth | Hosted MCP URL + OAuth  |
| Local stdio clients      | Legacy/manual setup                                     | Local package + API key |

## Connect with ChatGPT

Use this path to add NorthAxium Data as a private ChatGPT plugin backed by the hosted MCP server.

<Steps>
  <Step title="Enable developer mode">
    In ChatGPT, open **Settings** → **Security and login**, then turn on **Developer mode**.

    Developer mode availability depends on your ChatGPT plan and workspace policy.
  </Step>

  <Step title="Open the Plugins directory">
    Open **Plugins** from the ChatGPT sidebar, or go directly to [chatgpt.com/plugins](https://chatgpt.com/plugins). Click the **Create app** plus button.
  </Step>

  <Step title="Enter the MCP connection">
    Enter a name such as `NorthAxium Data` and an optional description. Keep **Server URL** selected under **Connection**, then enter:

    ```txt theme={null}
    https://mcp.northaxiumdata.ca/mcp
    ```
  </Step>

  <Step title="Review OAuth settings">
    Select **OAuth** for authentication. ChatGPT discovers the OAuth configuration from the MCP server automatically.

    If you open **Advanced OAuth settings**, keep **Dynamic Client Registration (DCR)** selected. Confirm that the default scopes include `openid`, `profile`, `email`, and `offline_access`. Leave the discovered authorization, token, registration, and resource URLs unchanged.
  </Step>

  <Step title="Create the plugin">
    Select the custom-server acknowledgement, then click **Create**. Review the discovered connection before continuing.
  </Step>

  <Step title="Authorize NorthAxium Data">
    Click **Sign in with NorthAxium Data**. Sign in with your NorthAxium Data account, review the requested access, and click **Allow**.
  </Step>

  <Step title="Use the plugin in a chat">
    Start a new chat and add **NorthAxium Data** from the tools or plugins menu. Ask a question such as:

    ```txt theme={null}
    Who are the top vendors for the Department of National Defence by contract value?
    ```
  </Step>
</Steps>

<Note>
  ChatGPT workspace admins may need to allow developer mode or approve private plugins before users can connect.
</Note>

## Connect with Claude

Use this path for Claude web or Claude Desktop custom connectors.

<Steps>
  <Step title="Open connectors">
    In Claude, go to **Customize** → **Connectors**. You can also open connectors from a chat by clicking **+** and choosing **Connectors**.
  </Step>

  <Step title="Add a custom connector">
    Click **+**, choose **Add custom connector**, and enter:

    ```txt theme={null}
    Name: NorthAxium Data
    URL: https://mcp.northaxiumdata.ca/mcp
    ```
  </Step>

  <Step title="Connect with OAuth">
    Click **Add** or **Connect**, then follow the NorthAxium Data sign-in prompt.
  </Step>

  <Step title="Enable it in a conversation">
    In a chat, open **+** → **Connectors** and enable **NorthAxium Data** for the conversation when needed.
  </Step>
</Steps>

<Note>
  Free Claude accounts may be limited to one custom connector by Claude. Team and Enterprise workspaces may also have organization-level connector controls.
</Note>

## Connect with Cursor

Use this path when you want Cursor's coding agent to query NorthAxium Data while you work in a repository.

<Steps>
  <Step title="Open Cursor MCP settings">
    In Cursor, open **Settings** → **Cursor Settings** → **MCP**. You can configure the server globally or in a project-level `.cursor/mcp.json` file.
  </Step>

  <Step title="Add the remote MCP server">
    Add this configuration:

    ```json theme={null}
    {
      "mcpServers": {
        "northaxium-data": {
          "url": "https://mcp.northaxiumdata.ca/mcp"
        }
      }
    }
    ```
  </Step>

  <Step title="Authenticate with OAuth">
    Save the configuration, then let Cursor open the NorthAxium Data sign-in flow. Sign in and approve the connection.
  </Step>

  <Step title="Use it from the agent">
    Ask Cursor to use NorthAxium Data for public Canadian government data while drafting code, research notes, or API workflows.
  </Step>
</Steps>

You can also use Cursor's one-click install link:

```txt theme={null}
cursor://anysphere.cursor-deeplink/mcp/install?name=NorthAxium%20Data&config=eyJ1cmwiOiJodHRwczovL21jcC5ub3J0aGF4aXVtZGF0YS5jYS9tY3AifQ%3D%3D
```

<Note>
  Cursor supports remote MCP servers in its IDE, agent window, and team marketplace flows. Team admins can distribute MCP servers through Cursor's team marketplace controls.
</Note>

## Usage and tiers

Hosted MCP uses your NorthAxium Data account quota. A tool call counts as an authenticated API request.

| Tier       | Monthly quota | Daily limit | Burst limit | Hosted MCP |
| ---------- | ------------: | ----------: | ----------: | ---------- |
| Free       |           100 |      25/day |       5/min | Included   |
| Developer  |        10,000 |   1,000/day |      30/min | Included   |
| Pro        |       100,000 |  10,000/day |     120/min | Included   |
| Enterprise |        Custom |      Custom |      Custom | Included   |

You can view your current tier and usage in the [dashboard](https://northaxiumdata.ca/dashboard).

## Security model

* **OAuth login:** You sign in with your NorthAxium Data account. You do not paste an API key into ChatGPT or Claude.
* **Read-only tools:** MCP tools search and retrieve public records. They do not create, update, or delete data.
* **Account limits:** MCP usage is metered against the same plan limits as the REST API.
* **Revocable access:** Disconnect NorthAxium Data from your AI client settings to remove the client connection.
* **Public records only:** Tools return public government, municipal, and open-data records.

## MCP tools

Once connected, your AI assistant has access to 29 read-only tools.

### Procurement

* **`search_contracts`** — Search federal contracts by vendor, department, value range, and date.
* **`search_vendors`** — Resolve vendor name strings before profiling.
* **`get_vendor_profile`** — Return an aggregated procurement profile for a named vendor.
* **`get_department_profile`** — Return an aggregated procurement profile for a federal department.
* **`search_tenders`** — Search CanadaBuys tender notices.
* **`search_awards`** — Search federal award notices.
* **`get_procurement_lifecycle`** — Trace tender, award, and contract records by solicitation number.

### Grants

* **`search_grants`** — Search federal grants, research grants, or infrastructure projects.
* **`search_grant_recipients`** — Resolve grant recipient name strings before profiling.
* **`get_grant_recipient_profile`** — Return an aggregated grants profile for a recipient.

### Lobbying

* **`search_lobbying`** — Search public lobbying registrations.
* **`get_lobbying_communications`** — Search public lobbying communication records.
* **`get_client_profile`** — Return an aggregated lobbying profile for a client organization.

### Contributions

* **`search_contributions`** — Search reviewed Elections Canada political contributions.

### Parliamentary

* **`search_bills`** — Search parliamentary bills.
* **`search_politicians`** — Search current and historical federal politicians.
* **`get_politician_profile`** — Return a public parliamentary profile for a politician.

### Permits and zoning

* **`search_permits`** — Search public municipal building permit records across 17 cities.
* **`lookup_zone`** — Look up zoning at a latitude/longitude coordinate across supported municipalities.

### Property intelligence

* **`search_properties`** — Resolve an Edmonton address or assessment account to ranked property candidates.
* **`get_property`** — Return a property's current facts, relationships, coverage, and provenance.
* **`get_property_assessments`** — Return annual assessment history.
* **`get_property_characteristics`** — Return observed building and lot characteristics.
* **`get_property_taxes`** — Return clearly labelled estimates derived from published assessment-class tax rates.
* **`get_property_sales`** — Return licensed, display-approved sale transactions and their source rights.
* **`get_property_comparables`** — Rank eligible nearby sales by transparent distance and property-similarity criteria; results are not an appraisal.
* **`get_property_permits`** — Return confirmed permit relationships and, when requested, review candidates.
* **`get_property_zoning`** — Return confirmed property-to-zoning relationships.
* **`get_property_sources`** — Return the source and licence evidence supporting the property response.

## Example prompts

* "Who are the top vendors for the Department of National Defence by contract value?"
* "What has Palantir lobbied for in Canada?"
* "Find public building permits in Edmonton for new construction."
* "What federal grants has the University of Saskatchewan received?"
* "Show recent lobbying communications about defence."
* "What zone is this coordinate in Toronto?"
* "Show the assessment and estimated tax history for 18230 107A Street NW in Edmonton."

## Troubleshooting

<AccordionGroup>
  <Accordion title="The MCP URL opens with an authentication error in my browser">
    That is expected. The MCP endpoint requires an OAuth bearer token from ChatGPT, Claude, or another MCP client. Use your AI client's connector setup flow instead of opening the URL directly in a browser.
  </Accordion>

  <Accordion title="ChatGPT says there was a problem connecting">
    Confirm that **Developer mode** is enabled under **Settings** → **Security and login**. Recreate the plugin from [chatgpt.com/plugins](https://chatgpt.com/plugins) with `https://mcp.northaxiumdata.ca/mcp` and **OAuth** selected.

    In **Advanced OAuth settings**, confirm that **Dynamic Client Registration (DCR)** is selected and the default scopes include `openid`, `profile`, `email`, and `offline_access`. If the failed plugin was created before these scopes appeared, create a fresh plugin instead of retrying its cached OAuth client. Complete the NorthAxium Data consent screen and click **Allow**.
  </Accordion>

  <Accordion title="Claude says authentication failed">
    Disconnect the NorthAxium Data connector in **Customize** → **Connectors**, then add it again and complete the OAuth sign-in flow. If your workspace has connector restrictions, ask an admin to approve custom connectors.
  </Accordion>

  <Accordion title="Cursor does not connect">
    Confirm the MCP server URL is exactly `https://mcp.northaxiumdata.ca/mcp`. If Cursor prompts for OAuth again, remove the NorthAxium Data MCP entry, add it again, and complete the sign-in flow.
  </Accordion>

  <Accordion title="A broad query times out">
    Narrow the request with a date range, client, department, municipality, keyword, or smaller result limit. For example, ask for recent lobbying communications for a specific client or institution instead of all communications on a broad subject.
  </Accordion>

  <Accordion title="The AI client blocks a tool call">
    Some AI clients apply their own safety checks before calling tools. Rephrase the request as public-record research and include a specific public dataset, organization, department, or date range.
  </Accordion>
</AccordionGroup>
