MIL — Machine Intelligence Layer

Swedish company data (Bolagsverket, SCB) for AI agents, verified, with history and annual reports

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
98%
이름 품질
98%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,254토큰 (도구 정의)
~1.9 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.76%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "mil": {
      "url": "https://www.milquery.com/api/mcp?src=registry"
    }
  }
}

원격 엔드포인트

https://www.milquery.com/api/mcp?src=registrystreamable-http

할 수 있는 일

도구 목록

도구 (9)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_company(organisation_number, tier)

Retrieve machine-readable intelligence for a Swedish company by organisation number. Returns current attribute values, resolved knowledge, signals, events, provenance, and data freshness. All values include confidence and source evidence. Unknown or missing data is returned explicitly — never invented.

입력 스키마

{
  "type": "object",
  "properties": {
    "organisation_number": {
      "type": "string",
      "description": "Swedish organisation number (10 or 12 digits, e.g. '5560000000' or '165560000000')",
      "pattern": "^\\d{10,12}$"
    },
    "tier": {
      "type": "string",
      "enum": [
        "basic",
        "verified",
        "intelligence"
      ],
      "description": "Product tier. basic (free, fair-use limited): identity. verified (0.02 USDC/company): current state with per-value verification and provenance. intelligence (0.08 USDC/company): verified plus history, material events, annual-report financials, trends and deterministic signals. Paid tiers use x402 v2 on Base when payment is enforced: an unpaid call returns the PaymentRequired; retry with params._meta['x402/payment']. Omitted: basic while payment is enforced, the legacy untiered response in the free preview."
    }
  },
  "required": [
    "organisation_number"
  ]
}
🟢get_company_history(organisation_number, attribute_key, limit)

Retrieve the change history for a Swedish company — attribute_changed events showing when values were first observed and what changed. Optionally filter by attribute key. Returns temporal bounds (effective_from) and evidence for each event.

입력 스키마

{
  "type": "object",
  "properties": {
    "organisation_number": {
      "type": "string",
      "description": "Swedish organisation number (10 or 12 digits)",
      "pattern": "^\\d{10,12}$"
    },
    "attribute_key": {
      "type": "string",
      "description": "Optional: filter to events for a specific attribute (e.g. 'employee_count', 'legal_form')"
    },
    "limit": {
      "type": "integer",
      "description": "Maximum number of events to return (default 50, max 200)",
      "default": 50,
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": [
    "organisation_number"
  ]
}
🟢find_distress_signals(organisation_number, signal_type, severity)

Find active warning signals for a company. Signals are deterministic rules over register facts and filed annual reports — no AI scores. Examples: vat_registration_lost, f_tax_lost, employee_band_decline, liquidation_in_progress, bankruptcy_proceeding, revenue_decline_yoy, negative_equity. Each signal includes its rule, severity (low, medium, high), supporting facts and detected_at.

입력 스키마

{
  "type": "object",
  "properties": {
    "organisation_number": {
      "type": "string",
      "description": "Swedish organisation number (10 or 12 digits)",
      "pattern": "^\\d{10,12}$"
    },
    "signal_type": {
      "type": "string",
      "description": "Optional: filter to a specific signal type",
      "enum": [
        "asset_decline",
        "bankruptcy_proceeding",
        "company_deregistered",
        "company_inactive",
        "employee_band_decline",
        "employer_registration_lost",
        "equity_decline",
        "f_tax_lost",
        "financial_reporting_gap",
        "liability_growth",
        "liquidation_in_progress",
        "merger_in_progress",
        "multiple_material_changes_90d",
        "negative_equity",
        "operating_result_negative",
        "profit_negative",
        "recent_status_change",
        "repeated_address_changes",
        "repeated_losses",
        "repeated_operating_losses",
        "restructuring_in_progress",
        "revenue_decline_2y",
        "revenue_decline_yoy",
        "turnover_band_decline",
        "vat_registration_lost",
        "workplace_count_decline"
      ]
    },
    "severity": {
      "type": "string",
      "description": "Optional: filter by severity level",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    }
  },
  "required": [
    "organisation_number"
  ]
}
🟢search_company_events(attribute_key, event_type, limit)

Search for company attribute change events across companies. Use this to find companies where a specific attribute recently changed, or to monitor for changes in a particular dimension (e.g. employee count drops). Returns events with company identifiers, previous/new values, and temporal bounds.

입력 스키마

{
  "type": "object",
  "properties": {
    "attribute_key": {
      "type": "string",
      "description": "Attribute to filter by (e.g. 'employee_count', 'legal_form', 'industry_code')"
    },
    "event_type": {
      "type": "string",
      "description": "Event type filter (currently only 'attribute_changed' is supported)",
      "enum": [
        "attribute_changed"
      ],
      "default": "attribute_changed"
    },
    "limit": {
      "type": "integer",
      "description": "Maximum number of events to return (default 50, max 200)",
      "default": 50,
      "minimum": 1,
      "maximum": 200
    }
  },
  "required": []
}
🟢search_companies(name, organisation_number, locality, industry_code, has_signals, ...)

Search and discover Swedish companies without knowing their organisation number. Filter by company name (partial match), industry code, or presence of active distress signals. Returns compact summary cards — each card includes the organisation_number needed to call get_company for full intelligence. All parameters are optional; omit all to browse all companies in the dataset. Discovery flow: (1) call search_companies to find a company, (2) use the returned organisation_number to call get_company for full intelligence.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Partial company name to search (case-insensitive substring match on legal name)"
    },
    "organisation_number": {
      "type": "string",
      "description": "Canonical 10-digit or source 12-digit company identity"
    },
    "locality": {
      "type": "string",
      "description": "Registered locality, combined with ANY matching SNI"
    },
    "industry_code": {
      "type": "string",
      "description": "Swedish SNI numeric prefix (2–5 digits), matching any registered activity; e.g. '62' for IT"
    },
    "has_signals": {
      "type": "boolean",
      "description": "If true, return only companies with active distress signals. If false, return only companies without. Omit to return all."
    },
    "limit": {
      "type": "integer",
      "description": "Maximum number of companies to return (default 20, max 100)",
      "default": 20,
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": []
}
🟢find_related_companies(organisation_number, relation_type, limit)

Find companies related to the given company by evidence MIL holds: industry_cluster (same SNI classification) and address_cluster (same registered postal code). Relation types MIL has no source data for, such as board_member and ownership, are reported as unavailable with a reason rather than as an empty result.

입력 스키마

{
  "type": "object",
  "properties": {
    "organisation_number": {
      "type": "string",
      "description": "Swedish organisation number (10 or 12 digits)",
      "pattern": "^\\d{10,12}$"
    },
    "relation_type": {
      "type": "string",
      "description": "Relation to search for. industry_cluster and address_cluster are supported; board_member and ownership return an explicit unavailable status because MIL does not yet ingest that data.",
      "enum": [
        "industry_cluster",
        "address_cluster",
        "board_member",
        "ownership"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "Maximum results (default 10, max 50)",
      "default": 10,
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "organisation_number"
  ]
}
🟢batch_get_companies(organisation_numbers, tier)

Resolve up to 50 companies in one call. Every requested identifier appears in the result with an explicit status (resolved, not_found or invalid_organisation_number), so absence is never signalled by omission.

입력 스키마

{
  "type": "object",
  "properties": {
    "organisation_numbers": {
      "type": "array",
      "description": "Swedish organisation numbers (10 or 12 digits), max 50",
      "items": {
        "type": "string",
        "pattern": "^\\d{10,12}$"
      },
      "minItems": 1,
      "maxItems": 50
    },
    "tier": {
      "type": "string",
      "enum": [
        "basic",
        "verified",
        "intelligence"
      ],
      "description": "Product tier. basic (free, fair-use limited): identity. verified (0.02 USDC/company): current state with per-value verification and provenance. intelligence (0.08 USDC/company): verified plus history, material events, annual-report financials, trends and deterministic signals. Paid tiers use x402 v2 on Base when payment is enforced: an unpaid call returns the PaymentRequired; retry with params._meta['x402/payment']. Omitted: basic while payment is enforced, the legacy untiered response in the free preview."
    }
  },
  "required": [
    "organisation_numbers"
  ]
}
🟢search(query)

Search Swedish companies by name or organisationsnummer (10 or 12 digits, dashes allowed). Also accepts simple discovery such as 'restaurants in Trelleborg', 'construction companies in Malmö', 'IT companies in Lund', or 'companies in Trelleborg' (also Swedish 'restauranger i Malmö'). Industries resolve through official English/Swedish SNI descriptions and business aliases, e.g. 'computer repair'/'datorreparation' and 'dining'/'restaurangverksamhet'. Known counties such as Skåne and explicit municipality names use registered administrative geography. Unrecognized or ambiguous wording falls back to name search. Locality is the registered locality, not nearby workplaces. Signal-filtered discovery is refused in free search; use paid find_distress_signals for a known company. Returns up to 10 results, each with an id to pass to fetch and a citable URL. Free (Basic identity only).

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Company name, organisationsnummer such as 556012-5790, or simple discovery such as restaurants in Trelleborg"
    }
  },
  "required": [
    "query"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "results"
  ]
}
🟢fetch(id)

Fetch the register identity of one Swedish company by the id that search returned (its organisationsnummer): name, legal form, industry (SNI), registration date, municipality, status, sources and freshness. Free (Basic). Verified and Intelligence (VAT/F-tax, history, annual reports, signals) are paid via get_company.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "An id from search: the organisationsnummer"
    }
  },
  "required": [
    "id"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 9개