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

# MCP Server

> Use the TIC MCP (Model Context Protocol) server in AI applications — prompts, resources, and tools for Claude, OpenAI, and other LLMs.

We provide an MCP (Model Context Protocol) server with prompts, resources and tools that you can use for building AI-applications. The
server uses streamable HTTP transport providing real-time communication with Server-Sent Events (SSE) streaming support.

## Getting Started

Our MCP server is located at [https://mcp.tic.io](https://mcp.tic.io). It accepts your TIC API key via either of two headers:

* `x-api-key: <your_api_key>` — same scheme as our REST API
* `Authorization: Bearer <your_api_key>` — for clients (such as the Anthropic Messages API connector) that only forward an OAuth-style bearer token

Either form authenticates the same way against the same key. Pick whichever your MCP client supports.

## Example of using OpenAI Responses API

OpenAI Responses API is the most advanced interface for generating model responses. Full documentation for the API is available [here](https://platform.openai.com/docs/api-reference/responses).

Endpoint: [https://api.openai.com/v1/responses](https://api.openai.com/v1/responses)

Note you need to include Bearer authentication for the OpenAI to work. An example of the request body follows below that is using flagship gpt-5 model.

```json theme={null}
{
  "model": "gpt-5",
  "input": [
    {
      "role": "developer",
      "content": [
        {
          "type": "input_text",
          "text": "Talk like a chief financial officer"
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Get company information for Bahnhof AB (publ)."
        }
      ]
    }
  ],
  "text": {
    "format": {
      "type": "text"
    },
    "verbosity": "medium"
  },
  "reasoning": {
    "effort": "medium",
    "summary": "auto"
  },
  "tools": [
    {
      "type": "mcp",
      "allowed_tools": [
        "get_company_by_registration_number",
        "get_company_by_name",
        "get_company_by_company_id",
        "get_companies_by_sni_code",
        "get_financial_reports",
        "get_annual_reports",
        "get_risk_and_intelligence",
        "get_credit_score",
        "get_company_risk_summary",
        "get_company_debt_cases",
        "get_company_penalties",
        "get_company_lansstyrelsen_decisions",
        "get_company_kammarkollegiet_sanctions",
        "get_company_tax_deferrals",
        "get_company_business_mortgages",
        "get_company_payroll_history",
        "get_company_share_structure",
        "get_company_address_history",
        "get_company_name_history",
        "get_company_vehicles",
        "get_company_bankruptcies"
      ],
      "headers": {
        "x-api-key": "your_api_key"
      },
      "require_approval": "never",
      "server_label": "TIC",
      "server_url": "https://mcp.tic.io"
    }
  ],
  "store": true,
  "include": ["reasoning.encrypted_content"]
}
```

## Example of using Anthropic Messages API

Anthropic's Messages API can call remote MCP servers directly through its MCP connector. Full documentation is available [here](https://docs.claude.com/en/docs/agents-and-tools/mcp-connector).

Endpoint: `https://api.anthropic.com/v1/messages`

You need three headers on the request:

* `x-api-key: <your_anthropic_api_key>` — your Anthropic API key
* `anthropic-version: 2023-06-01`
* `anthropic-beta: mcp-client-2025-11-20`

The `authorization_token` field on the MCP server entry is forwarded by Anthropic to our server as `Authorization: Bearer <token>` — pass your **TIC** API key there. An example request body:

```json theme={null}
{
  "model": "claude-opus-4-7",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Get company information for Bahnhof AB (publ)."
    }
  ],
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://mcp.tic.io",
      "name": "tic",
      "authorization_token": "your_tic_api_key"
    }
  ],
  "tools": [
    {
      "type": "mcp_toolset",
      "mcp_server_name": "tic"
    }
  ]
}
```

To restrict which TIC tools the model can see, use the `mcp_toolset` allowlist pattern — disable everything by default, then enable specific tools:

```json theme={null}
{
  "tools": [
    {
      "type": "mcp_toolset",
      "mcp_server_name": "tic",
      "default_config": { "enabled": false },
      "configs": {
        "get_company_by_registration_number": { "enabled": true },
        "get_company_risk_summary":            { "enabled": true },
        "get_company_debt_cases":              { "enabled": true },
        "get_company_penalties":               { "enabled": true }
      }
    }
  ]
}
```

## Example of LibreChat configuration

If you wish to use our MCP in LibreChat you simply add a block inside mcpServers section in yaml configuration file:

```yaml librechat.yaml theme={null}
mcpServers:
  tic:
    type: streamable-http
    url: https://mcp.tic.io
    headers:
      x-api-key: 'your_api_key'
```

## Example of prompt and response

This shows an example of a user input prompt and the response. The request is using gpt-4.1.

<img className="block" src="https://mintcdn.com/theintelligencecompany/VlKnVzU3VQOotfpV/images/mcp-prompt-example1.png?fit=max&auto=format&n=VlKnVzU3VQOotfpV&q=85&s=7ae8dfdb902a9b75ca3363fa114c0e51" alt="Clean page" width="822" height="964" data-path="images/mcp-prompt-example1.png" />

## Prompts

Prompts are user-invokable workflow templates that combine multiple tools into a single
investigation flow with explicit framing and a named deliverable. Pick one from your
MCP client's prompt menu to kick off an end-to-end analysis.

All prompts take `registrationNumber` (Swedish organisationsnummer, e.g. `556519-9493`) and resolve identity to the internal companyId as their first step.

| Prompt                     | Parameters           | What it does                                                                                                                                                       |
| -------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| investigate\_company       | `registrationNumber` | Full company workup: identity, risk, debts, penalties, addresses, naming, share structure. Deliverable: red-flag report grouped by category.                       |
| liquidity\_stress\_check   | `registrationNumber` | Combines credit risk, Skatteverket tax deferrals, Kronofogden debts, and payroll trend. Deliverable: stress score (Low/Medium/High/Critical) with evidence.        |
| due\_diligence\_check      | `registrationNumber` | Know-Your-Business check. Resolves identity then runs the full workup. Deliverable: KYB verdict (Proceed / Conditions / Decline).                                  |
| shell\_company\_indicators | `registrationNumber` | Screens for shell-company / fraud signals: name churn, address intelligence, missing payroll, share-capital anomalies. Deliverable: shell likelihood + indicators. |

## Resources

Resources are static reference data the model reads once into context — no tool call required.
They decode the codes that appear in tool responses.

| URI                     | What it contains                                                                                                                                  |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| ormeo://reference/codes | Decoder for `LocalCompanyCode` (Swedish legal-form codes: AB, HB, KB, BRF, EK, SF, FL, …) and Kronofogden `KFM_DebtCaseType` (A vs E debt cases). |

## Tools

Functions the model invokes to retrieve company, property, or vehicle data. Tools are grouped
below by purpose.

### Company search & identity

| Tool                                   | Description                                                                                                                                 |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| get\_company\_by\_name                 | Find a company by current or historical name                                                                                                |
| get\_company\_by\_registration\_number | Find a company by Swedish registration number (organisationsnummer)                                                                         |
| get\_company\_by\_company\_id          | Get the core company record by internal companyId                                                                                           |
| get\_companies\_by\_sni\_code          | List companies matching a 5-digit SNI industry code. Supports both SNI 2007 and SNI 2025 — pass `sniStandard="2007"` (default) or `"2025"`. |

### Company financials & risk

| Tool                         | Description                                                                                                                                                                                                                                                                     |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get\_financial\_reports      | Income statement and balance sheet across all available periods (TKR, SEK)                                                                                                                                                                                                      |
| get\_annual\_reports         | List of available annual reports in PDF with metadata and download URLs                                                                                                                                                                                                         |
| get\_credit\_score           | Current credit score and the descriptions used as the basis of the calculation                                                                                                                                                                                                  |
| get\_company\_risk\_summary  | Numeric risk scores: credit score, forward risk forecast/class, board score, beneficial-owners score, financial-discrepancy score, other-intelligence score, intelligence aggregates, and ORB network-risk aggregate counts. Scores only — no per-person details. 4-hour cache. |
| get\_risk\_and\_intelligence | Raw company-intelligence records (flags and signals collected over time)                                                                                                                                                                                                        |

### Company enforcement & compliance

| Tool                                     | Description                                                                                        |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------- |
| get\_company\_debt\_cases                | Kronofogden enforcement: debtor summary, debt summary, current cases, weekly aggregates            |
| get\_company\_penalties                  | Consolidated penalties (Skatteverket, Kammarkollegiet, Länsstyrelsen, Försäkringskassan, fees)     |
| get\_company\_lansstyrelsen\_decisions   | Länsstyrelsen (County Administrative Board) decisions and penalty fees                             |
| get\_company\_kammarkollegiet\_sanctions | Kammarkollegiet sanction cases grouped by diary number, with current balance and full case history |
| get\_company\_tax\_deferrals             | Skatteverket TF-ANST temporary tax-payment deferrals (liquidity-stress signal)                     |
| get\_company\_bankruptcies               | Bankruptcies initiated on a given date                                                             |

### Company structure & history

| Tool                              | Description                                                                                    |
| --------------------------------- | ---------------------------------------------------------------------------------------------- |
| get\_company\_business\_mortgages | Bolagsverket-registered business mortgages (företagsinteckningar) — collateral encumbrance     |
| get\_company\_payroll\_history    | Skatteverket MOMS-AG (VAT/employer tax) filings and aggregated CompanyPayroll2 history         |
| get\_company\_share\_structure    | Registered share capital over time and share-class structure (A/B/C, …) from Bolagsverket      |
| get\_company\_address\_history    | All addresses (visiting, mailing, registered) enriched with active AddressIntelligence signals |
| get\_company\_name\_history       | Current and historical legal names plus trade names (bifirma)                                  |

### Vehicles

| Tool                             | Description                                              |
| -------------------------------- | -------------------------------------------------------- |
| get\_company\_vehicles           | Vehicles owned or operated by a company                  |
| get\_vehicle\_by\_license\_plate | Look up a vehicle by license plate                       |
| get\_vehicle\_by\_vin            | Look up a vehicle by VIN (vehicle identification number) |

### Property

| Tool                      | Description                                                                 |
| ------------------------- | --------------------------------------------------------------------------- |
| get\_property\_by\_label  | Find a property by its label (property designation / fastighetsbeteckning)  |
| get\_orthophoto\_by\_year | Get an orthophoto for a property; leave year empty for the most recent year |

We will continuously add new tools — check back here for new additions.
