mcp-lovdata
This server is an MCP toolbox for Norwegian legal sources — statutes, regulations, legislative history, ECHR caselaw, and the Parliamentary Ombudsman — with local full-text search and lookup tools.
search: Full-text search across all statute and regulation paragraphs, with snippets, scoping to one law, document type, or ministry, and title-only search.
get_document: Look up a law or regulation by name, doc ID, or LOV/FOR code; returns metadata, table of contents, and optionally the full text.
get_article: Retrieve one paragraph verbatim with amendment history, optionally with surrounding context.
list_documents: Browse the corpus filtered by type, ministry, or change date, sorted by newest changes.
status: Show when the local index was last built and what it contains.
sync: Re-download Lovdata packages and rebuild the index, and refresh preparatory works.
caselaw_search / caselaw_get: Search and retrieve European Court of Human Rights decisions via HUDOC, with filters like article, importance, chamber, respondent state, and date.
preparatory_search / preparatory_get: Search Norwegian legislative history from Stortinget since 1986 (propositions, committee reports, etc.) and fetch full case details and document text.
ombudsman_search / ombudsman_get: Full-text search and retrieval of Sivilombudet (Parliamentary Ombudsman) statements and inspection reports.
CLI: The same functionality is available via the
lovdatacommand with direct module access for very fast local queries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-lovdataFinn paragraf 4-1 i arbeidsmiljøloven"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-lovdata
MCP-server for norske lover og sentrale forskrifter fra Lovdatas åpne datasett. Korpuset lastes ned, parses og indekseres lokalt i SQLite med FTS5, slik at søk går på millisekunder uten nettverk.
Hvorfor lokal indeks
Lovdata har ikke et gratis spørrings-API. Det som er åpent er to bulk-arkiver som legges ut på nytt hver natt:
gjeldende-lover.tar.bz2— 758 lovergjeldende-sentrale-forskrifter.tar.bz2— 5 114 forskrifter, delegeringer, instrukser og stortingsvedtak
Til sammen 27 MB komprimert. Alt annet — rettspraksis, forarbeider, historiske versjoner, lokale forskrifter — ligger bak betaling i Lovdata Pro. Dataene her er lisensiert under NLOD 2.0 og kan fritt brukes til alle formål.
Filene er XHTML med semantiske klassenavn, ikke et maskinformat. src/parse.js leser
metadata, kapittelstruktur, paragrafer og endringshistorikk ut av dem.
Related MCP server: Icelandic Law MCP
Verktøy
Verktøy | Hva det gjør |
| Fulltekstsøk i alle paragrafer, med utdrag. Kan avgrenses til én lov, én type eller ett departement. |
| Slår opp en lov på vanlig navn, dokid eller LOV-kode. Metadata, hjemmel og innholdsfortegnelse. |
| Én paragraf ordrett, med endringshistorikk. Bruk denne før du siterer. |
| Bla etter type, departement eller endringsdato. |
| Når indeksen sist ble bygget, og hvor mye den inneholder. |
| Henter ferske datapakker og bygger indeksen om. |
| Søker i EMD-praksis via Europarådets åpne HUDOC-base. |
| Henter én EMD-dom i fulltekst, med mulighet for å hoppe til en seksjon. |
| Søker i Stortingets saker fra 1986 — forarbeidene. |
| Saksgang, vedtak og dokumenttekst for én stortingssak. |
| Søker i Sivilombudets uttalelser. |
| Henter én uttalelse i fulltekst. |
Rettspraksis
Norsk rettspraksis finnes ikke i noen fri, maskinlesbar kilde. Lovdata Pro tar betalt
for Høyesterett og lagmannsrettene, og domstol.no sperrer /api i robots.txt.
Det som derimot er åpent, er Den europeiske menneskerettsdomstolen gjennom Europarådets HUDOC-base — og den er ikke et sidespor: menneskerettsloven § 2 gjør EMK til norsk lov, og § 3 gir den forrang ved motstrid med annen lovgivning. Basen har 906 avgjørelser mot Norge, med fulltekst, artikkelhenvisninger og konklusjon.
caselaw_search går live mot HUDOC — ingen lokal indeks, ingen autentisering. Vær
oppmerksom på to feller i deres spørresyntaks:
sorter obligatorisk. Uten den svarer HUDOC med en 404-side i HTML.Ukjente sorteringsfelt gir stille null treff, ikke en feilmelding.
ranker ett av dem, så relevanssortering finnes ikke — brukcaseNamefor å finne én bestemt sak.
Forarbeider
Stortingets API (data.stortinget.no, versjon 1.6) er åpent og uten autentisering,
men har ingen fritekstsøk — bare uttrekk per sesjon. Sakslistene er små og gamle
sesjoner endrer seg aldri, så de indekseres lokalt sammen med lovtekstene: 24 870 saker
fra 1986-87 til i dag. Bare de to nyeste sesjonene hentes på nytt ved hver sync.
Søket dekker sakstitler, henvisninger og emneord — ikke dokumentteksten. Selve teksten i innstillinger og proposisjoner hentes live på forespørsel.
To ting API-et krever at man vet:
Datoene er lokal midnatt i formatet
/Date(1787522400000+0200)/. Uten å legge til offsetet havner man konsekvent på dagen før.Samme sak ligger i to sesjoner — den den ble fremmet i og den den ble behandlet i, med samme id. Nøkkelen må være sak pluss sesjon, ellers forsvinner 1 100 saker.
Forvaltningspraksis
Sivilombudets uttalelser via WordPress' åpne REST-API: 1 965 saker med fulltekst og fungerende serversøk. Ikke bindende som en dom, men forvaltningen retter seg etter dem, og de er en etablert rettskilde i forvaltningsretten.
Det som ikke er med
EFTA-domstolen ble undersøkt og forkastet. REST-API-et deres gir bare saksnummer («E-12/26») uten parter, tema eller sammendrag, og sakssidene rendres med JavaScript. Det finnes ingen maskinlesbar inngang til innholdet.
Kommandolinje
De samme kildene finnes som kommandoen lovdata. Den importerer modulene direkte —
ingen JSON-RPC-omvei — så lokale søk svarer på under et tiendedels sekund.
lovdata sok '"organinterne dokumenter"' # søk i alle paragrafer
lovdata p offentleglova 11 # én paragraf ordrett
lovdata lov arbeidsmiljøloven # metadata og innholdsfortegnelse
lovdata fa offentleglova # forarbeider
lovdata sak 89888 --tekst # stortingssak med dokumenttekst
lovdata emd --art 8 --viktighet 1 # EMD-dommer mot Norge
lovdata dom 001-214433 --del "FOR THESE REASONS"
lovdata ombud innsyn byggesak # Sivilombudet
lovdata status--json gir rå JSON på stdout for videre behandling. lovdata hjelp viser alt.
Installer wrapperen:
ln -sf ~/Work/mcp-lovdata/src/cli.js ~/.local/bin/lovdataInstallasjon
npm install
npm run sync # ~3 minutter, laster ned 27 MBRegistrer serveren i Claude Code:
claude mcp add --scope user lovdata -- node ~/Work/mcp-lovdata/src/index.jsIndeksen havner i ~/.local/share/mcp-lovdata/lovdata.db (~150 MB). Overstyr med
LOVDATA_DB, eller flytt hele mappa med XDG_DATA_HOME.
Slik er det bygget
Ingen avhengigheter utover MCP-SDK-en. SQLite kommer fra
node:sqlite, som har FTS5 innebygd fra Node 22. Utpakkingen bruker systemetstar.Arkivene pakkes ut i
/tmp, ikke i hjemmemappa. Tusenvis av små filer er det dyreste man kan skrive til en mekanisk disk; det som blir liggende igjen er én fil.remove_diacritics 0i tokenizeren. Æ, ø og å er egne bokstaver på norsk, ikke aksenter over a og o.Bindeord fjernes fra søket. FTS5 krever at alle ord finnes, så «oppsigelse i prøvetiden» mistet ellers treff bare fordi «i» ikke sto i paragrafen. Fraser i anførselstegn røres ikke.
Rangering. Paragrafsøk vekter paragrafnavn og overskrift over brødtekst. Navneoppslag løfter treff der navnet står i tittelens parentes — det er der kortnavnet står, som i «Lov om arbeidsmiljø … (arbeidsmiljøloven)» — og foretrekker lov framfor delegeringsvedtak med samme ord i tittelen.
Grenser
Bare gjeldende rett. Ingen opphevede lover, ingen historiske versjoner, ingen rettsavgjørelser eller forarbeider.
Bare sentrale forskrifter. Lokale og kommunale forskrifter er ikke med.
Indeksen er et øyeblikksbilde. Lovdata legger ut nye pakker hver natt;
statusviser alderen,synchenter på nytt.Dette er ikke juridisk rådgivning. Verktøyet finner og siterer lovtekst.
Utvikling
npm test # enhetstester for parser og søkesyntaks, ingen nettverk
npm start # kjør serveren på stdioKilder
Lisens
MIT for koden. Lovtekstene er NLOD 2.0 fra Stiftelsen Lovdata.
Available Tools
12 toolscaselaw_getHent en EMD-dom i fulltekstA
Hele teksten i én EMD-avgjørelse, hentet på itemid fra et søketreff. Dommene er lange — ofte 30 000 til 300 000 tegn — så teksten avkortes. Sett section for å hoppe til den delen du trenger: THE FACTS, THE LAW, eller FOR THESE REASONS for domsslutningen.
| Name | Required | Description | Default |
|---|---|---|---|
| itemid | Yes | HUDOC-id fra et søketreff, f.eks. 001-250427. | |
| section | No | Hopp til første forekomst av denne teksten, f.eks. "THE LAW" eller "FOR THESE REASONS". | |
| maxChars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does include the key behavioral trait: the output is truncated because judgments are often 30,000–300,000 characters. It also explains section as a jump-to location and maps 'FOR THESE REASONS' to the operative part. It does not mention behavior on missing sections or exact truncation limits, but those are partly covered by the schema's maxChars constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first front-loads the primary action, and the second adds the essential length/truncation context and the section usage hint. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-document retrieval tool with one required parameter and no output schema, the description plus schema is sufficient to call it correctly: itemid source, section values, and truncation behavior are all present. The main gap is the lack of any stated output format or error behavior, but the operation is simple enough that this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already defines two of three parameters with examples and constrains maxChars with default/min/max (67% description coverage). The description adds 'THE FACTS' and the mapping of 'FOR THESE REASONS' to the conclusion, but it does not explicitly tie maxChars to the truncation behavior, so the added semantic value over the schema is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: fetch the text of one ECHR judgment using an itemid from a search hit. It is specific about the resource (EMD-avgjørelse) and the retrieval mechanism, but it does not explicitly name sibling tools such as caselaw_search or get_document to differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'hentet på itemid fra et søketreff' places this tool after a search operation and tells the agent to supply a HUDOC id. The second sentence also gives concrete guidance on when to set section. However, it never states exclusions or names the alternative tools for other document types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
caselaw_searchSøk i EMD-praksisA
Søk i avgjørelser fra Den europeiske menneskerettsdomstolen via Europarådets åpne HUDOC-base. Standard er dommer mot Norge, på engelsk.
Dette er ikke norsk rettspraksis. Høyesterett og lagmannsrettene finnes ikke i noen fri, maskinlesbar kilde — Lovdata Pro tar betalt, og domstol.no sperrer sitt API i robots.txt. EMD-praksis er derimot åpent publisert, og er samtidig en del av norsk rett gjennom menneskerettsloven §§ 2 og 3.
Sett respondent til en annen ISO-kode for saker mot andre stater, eller til
null for alle. importance: 2 gir bare de prinsipielle avgjørelsene.
Leter du etter én bestemt sak, bruk caseName eller appNo. text søker i
hele dommens tekst og treffer derfor alle avgjørelser som SITERER saken —
nyttig for å se hvordan en dom er fulgt opp, men feil verktøy for å finne den.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Til og med denne datoen. | |
| from | No | Fra og med denne datoen. | |
| text | No | Fritekst, f.eks. "child welfare" eller "care order". | |
| appNo | No | Klagenummer, f.eks. "37283/13". | |
| limit | No | ||
| branch | No | Storkammer, kammer eller komité. | |
| offset | No | ||
| article | No | EMK-artikkel som tall: 2 liv, 3 tortur, 5 frihet, 6 rettferdig rettergang, 8 privatliv og familieliv, 9 tros- og livssynsfrihet, 10 ytringsfrihet, 11 forsamlings- og foreningsfrihet, 13 effektivt rettsmiddel, 14 diskriminering. «P1-1» er eiendomsvernet i første tilleggsprotokoll. | |
| caseName | No | Søk i saksnavnet, f.eks. "Strand Lobben". Bruk dette når du leter etter én bestemt sak — fritekst i `text` treffer alle dommer som NEVNER den. | |
| importance | No | Ta bare med avgjørelser på dette viktighetsnivået eller høyere. 1 = Key case. | |
| respondent | No | Innklaget stat som ISO-kode. NOR er standard; null søker i alle stater. | NOR |
| includeDecisions | No | Ta med avvisningsavgjørelser og annet enn dommer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers substantial behavioral context: the default search is against Norway, results are in English, `text` matches decisions that cite a case, and `importance: 2` filters to principal judgments. It does not describe result shape, pagination behavior, or rate limits, but for a search tool it is unusually transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core search capability and then provides useful disambiguation. The paragraph about Norwegian law and the free-source situation is somewhat verbose but serves the important purpose of preventing the agent from treating this as domestic Norwegian case law. Each section earns its place, though a bit of trimming would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero annotations, no output schema, and 12 parameters, the description is quite complete: it explains defaults, source, key parameter semantics, and a common misuse trap. It does not describe the return format or pagination behavior, but the rich parameter guidance and disambiguation make it sufficient for most invocation scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the baseline is 3, but the description adds real meaning beyond the schema for several parameters: `respondent` accepts ISO codes or null, `importance` means 'level or higher', `text` searches full text including citing decisions, and `caseName` is for finding a specific case. This goes beyond the schema's terse descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: search decisions from the European Court of Human Rights via the open HUDOC database. It clearly distinguishes this from Norwegian domestic case law, which helps an agent avoid confusion. The scope and default behavior are immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use `caseName`/`appNo` versus `text`, and warns that `text` is the wrong tool for locating a specific case. It also explains that this is not Norwegian case law and that ECHR case law is openly available. It does not explicitly name alternative sibling tools, but the routing advice within the tool is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleHent én paragraf ordrettA
Hele teksten i én paragraf, pluss endringshistorikken for den. Bruk dette før du siterer — søketreffene er utdrag med utelatelser. reference tolkes som i get_document, article skrives «§ 14-9» eller «§14-9».
| Name | Required | Description | Default |
|---|---|---|---|
| article | Yes | Paragrafnummer, f.eks. "§ 100" eller "14-9". | |
| context | No | Ta med paragrafen før og etter. | |
| reference | Yes | Lov eller forskrift — navn, dokid eller LOV-kode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose important behavior: it returns the full paragraph text plus amendment history, and it contrasts this with incomplete search excerpts. For a read-only retrieval tool this is adequate, though it could state safety/permissions explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The most important guidance—use before quoting—is front-loaded, and parameter clarifications are compactly appended.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-article retrieval tool, the description covers what the tool does, what it returns, when to use it, and how to format both parameters. No output schema exists, but the description still provides enough return-value context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3. The description adds meaningful value by explaining that reference is interpreted as in get_document and by specifying accepted article formats like '§ 14-9' or '§14-9'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise resource: the full verbatim text of one article plus its amendment history. It clearly distinguishes itself from truncated search snippets and from get_document by focusing on a single paragraph.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use this before quoting because search hits are excerpts with omissions. It does not explicitly name all alternatives or state when not to use it, but the provided context makes the intended use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentHent en lov eller forskriftA
Slå opp et dokument på vanlig navn («arbeidsmiljøloven», «plan- og bygningsloven»), på dokid («NL/lov/2005-06-17-62») eller på den gamle koden («LOV-2005-06-17-62»).
Gir metadata — departement, ikrafttredelse, siste endring, hjemmel — og
innholdsfortegnelsen med alle paragrafer. Sett includeText for hele teksten;
for store lover blir den avkortet, og da er search med docId bedre.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Begrens oppslaget til én dokumenttype. | |
| maxChars | No | Tak for teksten. | |
| reference | Yes | Navn, dokid eller LOV-/FOR-kode. | |
| includeText | No | Ta med hele lovteksten. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses what the tool returns, and importantly warns that large laws return truncated text when includeText is set. It does not mention edge cases like ambiguous names or empty results, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, with the primary lookup methods and result contents front-loaded. The second sentence handles the includeText caveat efficiently. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters with full schema coverage and no output schema, the description provides enough context: how to reference documents, what output to expect, when text is truncated, and which sibling to use instead. An agent can correctly select and invoke this tool without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantic value by explaining accepted reference formats ('arbeidsmiljøloven', dokid, LOV-kode), clarifying includeText's truncation caveat, and pointing to search for large full-text needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Slå opp et dokument' (look up a document) using common name, docid, or legacy code. It clearly describes what is returned—metadata and a table of contents—and implicitly distinguishes itself from sibling tools like search and get_article by describing whole-document retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use an alternative: for large laws with includeText, the text may be truncated, and 'search med docId' is better. This is a clear when-not-to-use condition with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsBla i korpusetA
List dokumenter filtrert på type, departement eller endringsdato, sortert med sist endrede først. Bruk since for «hva er nytt i regelverket siden ...». Uten filtre svarer verktøyet med hvilke departementer som finnes, og hvor mye hvert av dem har publisert.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| since | No | Ikrafttredelse eller endring fra og med, f.eks. "2026-01". | |
| offset | No | ||
| ministry | No | Delstreng av departementsnavn, f.eks. "Helse". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the sort order and the significant no-filter aggregation behavior, both of which are non-obvious. It does not specify the response format or pagination details, but these are partially covered by the schema's limit/offset fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each adding unique value: the core action, the specific use of 'since', and the no-filter fallback. No filler or repetition, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers filtering and a special no-filter case, but with 5 parameters, no output schema, and no annotations, it could have stated what fields are returned and how this relates to `get_document` or `search`. The lack of response-shape information and explicit routing to sibling tools leaves some gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, but the description compensates by explaining 'since' as a date filter and interpreting 'departement' as a ministry filter. It also adds the interaction that omitting all filters produces ministry counts. Limit and offset are left to schema defaults, which is acceptable since they are conventional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists documents with filters on type, ministry, or change date, and sorts by most recently changed. This distinguishes it from the general 'search' sibling by focusing on structured browsing rather than full-text search, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance for the 'since' parameter ('what's new in the regulations since ...') and explains the no-filter behavior (returns ministry counts). It lacks direct 'when not to use' or explicit comparison to sibling tools like 'search', but the provided usage context is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ombudsman_getHent en uttalelse fra SivilombudetB
Hele teksten i én uttalelse. Saksnummeret står i teksten som SOM-ÅÅÅÅ-NNNN, og det er slik uttalelsen siteres.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | id fra et søketreff. | |
| type | No | uttalelser | |
| maxChars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose that the returned content is the complete text of a single statement and adds the useful citation format SOM-ÅÅÅÅ-NNNN. It does not mention output shape, errors, access constraints, or the effect of maxChars, but the core retrieval behavior is reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, focused sentences with no filler. The purpose is front-loaded in the first sentence, and the citation convention is compactly provided in the second. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a sibling set containing several similar retrieval tools, the description is under-specified. It does not explain when to choose this over ombudsman_search or caselaw_get, nor does it clarify the purpose of type and maxChars. An agent gets the basic what but not enough surrounding context for confident tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%: only 'id' has an explanatory description. The tool description adds no parameter-level meaning; the case-number note is about the returned text's citation format, not about the id, type, or maxChars parameters. The description therefore fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description identify a clear verb and resource: retrieving one full statement/uttalelse from Sivilombudet. The phrase 'Hele teksten i én uttalelse' unambiguously indicates full-text retrieval of a single opinion. However, it does not explicitly distinguish itself from sibling retrieval tools such as get_document, caselaw_get, or ombudsman_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving the full text of one statement and mentions how the case number appears for citation purposes. It does not state when to use this tool over ombudsman_search, caselaw_get, or get_document, nor does it explain that the id should come from a search hit. Usage context is only implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ombudsman_searchSøk i Sivilombudets uttalelserB
Fulltekstsøk i Sivilombudets uttalelser — omtrent 2 000 saker om forvaltningens saksbehandling. Tyngst på offentleglova, forvaltningsloven, innsyn, habilitet, taushetsplikt og begrunnelsesplikt.
Uttalelsene er ikke bindende som en dom, men forvaltningen retter seg etter dem
i praksis, og de er en etablert rettskilde i forvaltningsretten.
Sett type: "besoksrapporter" for besøksrapportene fra forebyggingsenheten.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Til og med denne datoen. | |
| from | No | Fra og med denne datoen. | |
| type | No | uttalelser | |
| limit | No | ||
| query | Yes | Søkeord, f.eks. "innsyn interne dokumenter". | |
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does add meaningful context: statements are non-binding but followed in practice and serve as an established legal source. Still, it does not disclose response format, pagination, or any limitations of the full-text search behavior itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core search purpose appears first, followed by the legal context, and the critical `type` override is placed last. Every sentence contributes, though the legal-status paragraph is useful context rather than invocation-critical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description omits what a successful search returns, how results are ordered, or how to go from a result to a specific document via siblings like ombudsman_get. It explains the corpus well but is incomplete for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description should compensate. It does clarify the `type` parameter by explaining what `besoksrapporter` returns, but it adds nothing about `limit`, `offset`, or how the date filters interact with the search. The schema already documents `query`, `to`, and `from`, so the description adds marginal value beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Fulltekstsøk i Sivilombudets uttalelser,' a specific verb plus resource, and clarifies the corpus as roughly 2,000 cases on administrative case processing. It does not explicitly differentiate itself from siblings like caselaw_search or preparatory_search, but the resource and scope are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly instructs when to set `type: "besoksrapporter"` for visit reports versus the default statements, which is a useful usage cue. However, it gives no guidance on when to choose this tool over the many sibling search tools, leaving the choice mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preparatory_getHent en stortingssak med dokumenttekstB
Detaljer om én sak: emner, komité, saksgang, vedtak og lenker til dokumentene. Sett includeText for å hente selve teksten i innstillingen eller proposisjonen — den er ofte lang, så den avkortes.
| Name | Required | Description | Default |
|---|---|---|---|
| caseId | Yes | sakId fra et søketreff. | |
| maxChars | No | ||
| includeText | No | Hent dokumentteksten, ikke bare metadataene. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It usefully warns that document text is often long and is truncated ('den er ofte lang, så den avkortes'), but it does not describe return structure, permissions, or other behavioral constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the core purpose, and the second explains the optional text behavior and its important truncation caveat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description names the main returned content and the optional text behavior, which is adequate for a basic call. However, with no output schema and several sibling getters, the lack of tool-selection guidance and undocumented maxChars behavior leave some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the description adds meaningful context for includeText by explaining that it retrieves the actual innstilling/proposisjon text. However, maxChars is not explained in the description, and caseId is only minimally connected to a search result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns details about a single parliamentary case: subjects, committee, case process, decisions, and links to documents. The singular focus ('én sak') helps distinguish it from search tools, though it does not explicitly contrast it with sibling getters like get_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool instead of preparatory_search, get_document, or get_article. The only conditional instruction concerns setting includeText, which is a parameter choice rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preparatory_searchSøk i forarbeiderA
Søk i Stortingets saker fra 1986 til i dag: proposisjoner, innstillinger, stortingsmeldinger og representantforslag. Dette er forarbeidene — der lovgivers mening står, og en tung rettskilde når lovteksten er uklar.
Søket går mot sakstitler, henvisninger og emneord, ikke mot dokumentteksten: Stortingets API har ingen fritekstsøk i selve dokumentene. Søk derfor på det loven eller saken heter, ikke på en formulering du forventer å finne inni.
Henvisningen i treffet («Prop. 12 L (2024–2025)») er det du siterer, og det
preparatory_get bruker for å hente teksten.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Begrens til én dokumenttype. Lovproposisjon (Prop. L) er der lovendringer begrunnes. | |
| limit | No | ||
| query | Yes | Stikkord fra sakstittelen, f.eks. "arbeidsmiljøloven prøvetid". | |
| offset | No | ||
| session | No | Stortingssesjon, f.eks. "2024-2025". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does it well. It explicitly discloses a key behavioral limitation: the search matches titles, references, and subject terms, not full document text, because the Stortinget API lacks free-text search. It also explains the output reference format and how it feeds into preparatory_get — valuable behavioral context beyond any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured in three compact paragraphs: what the tool searches, how the search behavior differs from full-text search and how to adapt, and what the hit reference is used for. Each sentence contributes distinct, necessary context with no redundancy. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives an agent everything needed to invoke the search correctly: scope, document types, search limitation, query strategy, and the follow-up tool. Since there is no output schema, it could have described result fields a bit more, but the citation format is covered and the operational path to preparatory_get is clear, making this adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is about 60%, and the description substantially enriches the most important parameter, query, by instructing users to search by the law/case name rather than by expected phrases. It also clarifies the citation/reference role of search results. It does not add much for limit/offset, but those are self-explanatory, so the description compensates well for the remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Søk i Stortingets saker' over preparatory works, and enumerates the exact document types (proposisjoner, innstillinger, stortingsmeldinger, representantforslag). This clearly distinguishes it from the other search tools by domain and scope. The mention of the date range adds further precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when this search is relevant — when the statute text is unclear and legislative intent is needed — and gives concrete guidance on how to search (by title or name, not by expected wording). It also routes the user to preparatory_get for fetching the document text. It does not explicitly name sibling search alternatives or say when not to use this tool, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSøk i lover og forskrifterA
Fulltekstsøk i alle paragrafer. Hvert treff er én paragraf med utdrag der søkeordene er markert med «hermetegn».
Skriv søkeordene, ikke spørsmålet: «oppsigelse prøvetid» slår «kan jeg sies opp i prøvetiden?». Sett en frase i anførselstegn for eksakt treff, og bruk * for trunkering («arbeidsgiv*»).
scope: "titler" søker i dokumenttitler i stedet — bruk det til «hvilke
forskrifter finnes om X». docId avgrenser søket til én lov.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Begrens til én dokumenttype. | |
| docId | No | Søk bare i dette dokumentet (dokid fra et tidligere treff). | |
| limit | No | ||
| query | Yes | Søkeord, f.eks. "oppsigelse prøvetid" eller "\"tvungent psykisk helsevern\"" | |
| scope | No | Søk i paragraftekst eller i dokumenttitler. | tekst |
| offset | No | ||
| ministry | No | Delstreng av departementsnavnet, f.eks. "Justis". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that each hit is one paragraph with an excerpt and that matched keywords are marked with quotation marks. It also explains search behavior differences for scope and docId, which is valuable behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized: main behavior first, then query syntax examples, then scope and docId specifics. Every sentence adds value and there is no fluff or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 7 parameters and no output schema, the description covers the core behavior, result shape, and important query options well. It does not explain pagination parameters like limit and offset or the type/ministry filters, but those are partly self-explanatory and the most critical usage guidance is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the description adds meaningful semantics for query syntax, exact-phrase quoting, truncation, scope:'titler', and docId restriction. It helps the agent understand how to construct effective queries, going beyond the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: full-text search across all paragraphs of laws and regulations, with each result being a paragraph excerpt. The title 'Søk i lover og forskrifter' plus the sibling tool names like caselaw_search and preparatory_search make it clearly distinguishable from other search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit query guidance: use keywords rather than questions, use quotes for exact phrases, use * for truncation, and use scope:'titler' when searching document titles. It does not explicitly contrast with sibling search tools like caselaw_search, but the in-tool guidance is strong and contextually clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusStatus for den lokale indeksenA
Når korpuset sist ble hentet, hvor mange dokumenter og paragrafer det inneholder, og fordelingen på type. Sjekk denne når ferskhet betyr noe.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states what data is returned and implies a read-only snapshot by referencing when the corpus was last fetched rather than saying it fetches now. It could be more explicit about being non-mutating, but nothing suggests side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words: the first lists the reported content, the second gives usage guidance. The information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status tool with no parameters and no output schema, the description sufficiently explains the return values (last fetch time, document count, paragraph count, type distribution) and the reasoning for using it. Nothing important is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the empty schema fully documents this. The baseline for zero-parameter tools is 4, and no additional parameter semantics are needed since there is nothing to configure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool reports when the local corpus was last fetched, counts of documents and paragraphs, and type distribution. This clearly distinguishes it from the sibling search/retrieval tools, making the purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Check this when freshness matters' (Sjekk denne når ferskhet betyr noe), providing a clear context for use. It doesn't name alternatives or exclusions, but the sibling list shows status is the only index-inspection tool besides sync.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syncHent ferske datapakker fra LovdataA
Laster ned Lovdata-datasettene på nytt og bygger lovindeksen om fra bunnen, og friskner opp forarbeidene fra Stortinget. Tar rundt to minutter. En systemd-timer kjører dette ukentlig, så det trengs sjelden manuelt.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the tool re-downloads all datasets, rebuilds the index from scratch, and takes about two minutes, which is meaningful behavioral context. It stops short of detailing side effects such as temporary unavailability or concurrent-run implications, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, information-dense sentences with the core action front-loaded and the time/scheduling context following. Every sentence earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter maintenance action, the description covers the key decision factors: what it does, how long it takes, and when it normally runs. It could mention output or operational impact, but the essential information needed to decide whether to invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so the baseline of 4 applies. There are no parameter-level details for the description to add, and the description does not attempt to invent any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action: it downloads Lovdata datasets again, rebuilds the law index from scratch, and refreshes preparatory works from the Storting. This clearly identifies the resource and scope, and distinguishes sync from sibling read/search tools such as search, get_document, and status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that a systemd timer runs the sync weekly and that manual runs are rarely needed, giving an agent clear guidance on when not to use it. It does not go as far as naming explicit alternative tools or conditions, but the scheduling context is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each corpus has its own clearly namespaced search/get pair (caselaw_, preparatory_, ombudsman_), and the generic search tool is explicitly scoped to statute paragraphs. get_document vs get_article are also clearly separated by document-level vs article-level retrieval, so there is no real overlap.
The dominant pattern is clear: `domain_search` and `domain_get` for the three secondary legal sources. However, the main corpus uses get_document and get_article rather than law_document/law_get, and status/sync are bare words that don't follow the verb_noun or domain_action pattern. Still, all names are readable and predictable once the pattern is understood.
Twelve tools is well within the ideal range for a legal research server with four distinct source types. Each tool covers a necessary retrieval or maintenance need, and none feel redundant.
The surface is comprehensive for its stated domain: statute search and retrieval, document listing, article-level detail with history, ECHR case law retrieval, preparatory works, and ombudsman opinions all have search and get coverage. The only notable absence is Norwegian court caselaw, but the tool descriptions explicitly explain that no free machine-readable source exists, so it is a data-availability limitation rather than a design gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Norske Høyesterettsavgjørelser og lovtekst som lov-bevisst data, søkbart på vanlig norsk.
Resolve, search and verify legal citations against the official sources, with provenance.
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
Search UK Acts, Statutory Instruments, and legislation with full text retrieval
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides offline full-text search across 35,000+ Swiss laws from all cantons and federal level using SQLite FTS5 indexing. Enables querying laws, articles, and metadata through natural language.1MIT
- AlicenseAqualityFmaintenanceProvides access to 1,709 Icelandic statutes and 19,026 provisions with full-text search, citation validation, and EU/EEA law integration, enabling legal research and compliance checks through natural language queries.11931Apache 2.0
- AlicenseAqualityFmaintenanceEnables querying and analyzing Danish legislation, including search, citation validation, currency checks, and EU law integration, directly from AI assistants.15721Apache 2.0
- AlicenseAqualityAmaintenanceProvides access to Danish legislation from Retsinformation.dk, enabling retrieval of act metadata, full text, and recent changes with verifiable citations.4Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/synjan/mcp-lovdata'
If you have feedback or need assistance with the MCP directory API, please join our Discord server