MIL — Machine Intelligence Layer
by lordfreez-ship-it · remote · no sign-in to list tools · v0.4.2 · published by GitHub user lordfreez-ship-it
Swedish company data (Bolagsverket, SCB) for AI agents, verified, with history and annual reports
9 tools: 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mil https://www.milquery.com/api/mcp?src=registryTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Only reads 9Claude Code: allow
batch_get_companiesResolve up to 50 companies in one call.No findings
Why it is in this group
- The name "batch_get_companies" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
fetchFetch the register identity of one Swedish company by the id that search returned (its organisationsnummer): name, legal form, industry (SNI), registration date, municipality, stat…No findings
Why it is in this group
- The name "fetch" says "fetch": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
find_distress_signalsFind active warning signals for a company.No findings
Why it is in this group
- The name "find_distress_signals" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_companyRetrieve machine-readable intelligence for a Swedish company by organisation number.No findings
Why it is in this group
- The name "get_company" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_company_historyRetrieve the change history for a Swedish company — attribute_changed events showing when values were first observed and what changed.No findings
Why it is in this group
- The name "get_company_history" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
searchSearch Swedish companies by name or organisationsnummer (10 or 12 digits, dashes allowed).No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
search_companiesSearch and discover Swedish companies without knowing their organisation number.No findings
Why it is in this group
- The name "search_companies" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
search_company_eventsSearch for company attribute change events across companies.No findings
Why it is in this group
- The name "search_company_events" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.4.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http mil https://www.milquery.com/api/mcp?src=registryRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mil__get_company",
"mcp__mil__get_company_history",
"mcp__mil__find_distress_signals",
"mcp__mil__search_company_events",
"mcp__mil__search_companies",
"mcp__mil__find_related_companies",
"mcp__mil__batch_get_companies",
"mcp__mil__search",
"mcp__mil__fetch"
],
"ask": [],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mil. Review it before you use it.
