> ## 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.

# Agent Skills

> Install NorthAxium Data skills for Claude Desktop and other AI agent tools.

Agent skills give your AI assistant domain-specific instructions for using NorthAxium Data correctly.

The current skill is for Claude Desktop. It teaches Claude when to use the NorthAxium Data MCP server, which tools are available, and which lookup patterns prevent bad results.

<Note>
  If you use Claude's hosted custom connector, install the [MCP server](/model-context-protocol) first. The hosted connector uses OAuth and does not require a local API key.
</Note>

<Card title="MCP Server" icon="plug" href="/model-context-protocol">
  Configure the NorthAxium Data MCP server before installing the skill.
</Card>

## Available skills

| Skill                 | Client         | What it helps with                                                      |
| --------------------- | -------------- | ----------------------------------------------------------------------- |
| `northaxium-data-mcp` | Claude Desktop | Canadian government data queries through the NorthAxium Data MCP server |

## Install the Claude Desktop skill

Before installing the skill, make sure the [MCP server](/model-context-protocol) is already connected. The skill adds usage instructions; the MCP server provides the tools.

<Steps>
  <Step title="Create the skill folder">
    Create a folder named `northaxium-data-mcp`.

    ```bash theme={null}
    mkdir -p northaxium-data-mcp
    ```
  </Step>

  <Step title="Create SKILL.md">
    Create a file at:

    ```txt theme={null}
    northaxium-data-mcp/SKILL.md
    ```

    Paste the skill content below into that file.
  </Step>

  <Step title="Zip the skill folder">
    Create a ZIP that contains the `northaxium-data-mcp` folder.

    ```bash theme={null}
    zip -r northaxium-data-mcp.zip northaxium-data-mcp
    ```
  </Step>

  <Step title="Upload and enable the skill">
    In Claude Desktop, open **Settings** → **Capabilities**, upload `northaxium-data-mcp.zip`, then enable the skill.
  </Step>

  <Step title="Test the skill">
    Ask Claude a question that should use NorthAxium Data:

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

    Claude should use the `northaxium-data` MCP tools and follow the lookup patterns in the skill.
  </Step>
</Steps>

## Claude Desktop skill

Copy this into `northaxium-data-mcp/SKILL.md`.

```md theme={null}
---
name: northaxium-data-mcp
description: Use NorthAxium Data MCP for Canadian contracts, lobbying, grants, politics, permits, zoning, and Parliament queries.
---

# NorthAxium Data MCP — usage guide

The `northaxium-data` MCP server covers Canadian government data:

- Federal contracts, tenders, awards, vendors, and departments
- Federal grants, research grants, and infrastructure projects
- Lobbying registrations and communications
- Political contributions
- Parliamentary bills and politicians
- Building permits across 17 Canadian municipalities
- Zoning lookups across 10 Canadian municipalities

Use the MCP server when the user asks about Canadian government spending, vendors, lobbying, legislation, grants, political financing, building permits, or zoning.

## Required lookup patterns

Use these patterns before answering.

### Vendor lookup

1. Use `search_vendors(q="...")` to find exact vendor strings.
2. Use `get_vendor_profile(name="...")` with the exact vendor string.

Do not call `get_vendor_profile` with an unverified company name if the name may have variants.

### Politician lookup

1. Use `search_politicians(q="...")` to resolve the politician slug.
2. Use `get_politician_profile(slug="...")` with the returned slug.

### Grant recipient lookup

1. Use `search_grant_recipients(q="...")` to resolve recipient name variants.
2. Use `get_grant_recipient_profile(name="...")` with the exact returned name.

TBS federal grants have fragmented recipient names. Always disambiguate first.

### Lobbying to contracts

To answer whether lobbying may connect to procurement:

1. Use `get_client_profile(name="...")` for lobbying summary.
2. Use `get_lobbying_communications(client="...")` for meeting records.
3. Use `search_contracts(vendor="...")` for contract wins.
4. Compare dates and departments. Do not claim causation unless the data directly supports it.

## Tool inventory

### Procurement

- `search_contracts` — Search federal contracts by vendor, department, value, method, and date.
- `search_vendors` — Resolve exact vendor strings before profiling.
- `get_vendor_profile` — Return aggregate contract history for a vendor.
- `get_department_profile` — Return aggregate spending profile for a department.
- `search_tenders` — Search CanadaBuys tender notices.
- `search_awards` — Search CanadaBuys 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 recipient name variants.
- `get_grant_recipient_profile` — Return aggregate federal grant history for a recipient.

### Lobbying

- `search_lobbying` — Search lobbying registrations.
- `get_lobbying_communications` — Search actual lobbying communication records.
- `get_client_profile` — Return aggregate lobbying activity for a client organization.

### Political contributions

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

### Parliamentary

- `search_bills` — Search parliamentary bills.
- `search_politicians` — Resolve politician names to slugs.
- `get_politician_profile` — Return politician profiles, including elections, committees, bills, and lobbying interactions.

### Permits

- `search_permits` — Search building permits across supported municipalities.

### Zoning

- `lookup_zone` — Look up zoning at a latitude and longitude.

## Parameter notes

Use these exact parameter names.

### `search_contracts`

Common parameters: `vendor`, `department`, `method`, `min_value`, `max_value`, `date_from`, `date_to`, `page`, `per_page`.

### `search_vendors`

Required: `q`.

Optional: `min_value`, `sort_by`, `limit`, `offset`.

### `get_vendor_profile`

Required: `name`.

Use the exact string returned by `search_vendors`.

### `search_grants`

Required: `dataset`.

Dataset values: `federal_grants`, `research_grants`, `infrastructure_projects`.

Common optional parameters: `q`, `program`, `min_value`, `max_value`, `recipient`, `department`, `province`, `fiscal_year`, `status`, `sort_by`, `sort_order`, `limit`, `offset`.

For university or researcher funding, use `dataset="research_grants"`.

### `search_grant_recipients`

Required: `q`.

Optional: `sort_by`, `limit`, `offset`.

### `get_grant_recipient_profile`

Required: `name`.

Use the exact string returned by `search_grant_recipients`.

### `search_lobbying`

Common parameters: `client`, `lobbyist`, `institution`, `subject`, `active`, `date_from`, `date_to`, `page`, `per_page`.

Use this for what an organization is registered to lobby on.

### `get_lobbying_communications`

Common parameters: `client`, `dpoh`, `institution`, `lobbyist`, `subject`, `date_from`, `date_to`, `page`, `per_page`.

Use this for who met whom and when.

The `lobbyist` filter has sparse source-data coverage. Prefer `client`, `dpoh`, or `institution`.

### `get_client_profile`

Required: `name`.

Partial match is accepted.

### `search_contributions`

Common parameters: `contributor`, `recipient`, `party`, `contributor_type`, `entity_type`, `province`, `min_amount`, `max_amount`, `year`, `date_from`, `date_to`, `sort_by`, `sort_order`, `page`, `per_page`.

### `search_bills`

Common parameters: `q`, `session`, `status`, `sponsor`, `sector`, `page`, `per_page`.

### `search_politicians`

Required: `q`.

Use this before `get_politician_profile`.

### `get_politician_profile`

Required: `slug`.

Use the slug returned by `search_politicians`.

### `search_permits`

Common parameters: `municipality`, `province`, `permit_type`, `status`, `q`, `min_value`, `max_value`, `issued_after`, `issued_before`, `lat`, `lng`, `radius_km`, `sort_by`, `sort_order`, `limit`, `offset`.

### `lookup_zone`

Required: `lat`, `lng`.

Supported cities include Toronto, Calgary, Edmonton, Vancouver, Winnipeg, Ottawa, Mississauga, Kitchener, Hamilton, and Quebec City.

## Data-quality caveats

- Vendor names are not normalized across every source. Run `search_vendors` before `get_vendor_profile`.
- Federal grants recipient names are fragmented. Run `search_grant_recipients` before `get_grant_recipient_profile`.
- Lobbying `lobbyist` coverage is sparse in event-level records. Prefer `client`, `dpoh`, or `institution`.
- Ottawa permits have partial geometry coverage due to source-address quality.
- Victoria permits are based on a rolling 365-day feed.
- Contracts category filtering is not available until `commodity_type` is normalized.
- Bill AI analysis may be `null`.
- Zoning does not currently cover Montreal or Brampton.

## Example workflows

### What has Palantir won from the Canadian government?

1. `search_vendors(q="Palantir")`
2. `get_vendor_profile(name="Palantir Technologies Canada")`

### Is SNC-Lavalin lobbying the federal government?

1. `get_client_profile(name="SNC-Lavalin")`
2. `get_lobbying_communications(client="SNC-Lavalin")`

### What has Mark Carney's lobbying history been since becoming PM?

1. `search_politicians(q="Carney")`
2. `get_politician_profile(slug="mark-carney")`

### Who are the biggest donors to the Liberal Party?

1. `search_contributions(party="Liberal", sort_by="amount", per_page=20)`

### What new construction is happening in downtown Calgary?

1. `search_permits(municipality="calgary", permit_type="new_construction", sort_by="value")`

### What is the zoning at 100 King Street West, Toronto?

1. Geocode the address to latitude and longitude.
2. `lookup_zone(lat=43.6478, lng=-79.3820)`
```

## Troubleshooting

**Claude does not use the skill** — Confirm the ZIP contains `northaxium-data-mcp/SKILL.md`, then enable the skill in **Settings** → **Capabilities**.

**Claude cannot see NorthAxium tools** — Configure the [MCP server](/model-context-protocol) first. The skill gives instructions; the MCP server provides the tools.

**MCP authentication fails** — If you use the hosted connector, disconnect and reconnect NorthAxium Data in Claude's connector settings, then complete the OAuth sign-in flow. If you use a legacy local stdio setup, confirm that `NORTHAXIUM_API_KEY` is valid.

**Results look incomplete** — Use the two-step lookup patterns in the skill. Vendor names, grant recipient names, and politician profiles require disambiguation.
