Skip to main content
Glama
Geniads-GitHub

geniads-mcp-local

Official
README.md
# Geniads MCP · lokal server

Lokal MCP-server der giver Claude Desktop adgang til Geniads' skill-bibliotek.

Den kalder skill-platformens REST-API direkte fra din egen maskine i stedet for
at gå gennem den hostede MCP-connector, hvor omkring 37 % af alle kald fejler.

## Installation

```bash
curl -fsSL https://raw.githubusercontent.com/Geniads-GitHub/geniads-mcp-local/main/install.sh | bash
```

Du bliver bedt om din API-nøgle. Den findes under **Settings → API Keys** på
platformen og starter med `sk_`.

Genstart Claude Desktop bagefter — og Claude Code, hvis du bruger den.
Begge læser kun deres config ved opstart.

Bruger du Claude Code og installerede før september 2026, er serveren kun sat op
til Desktop. Kør installeren igen, eller registrér den selv:

```bash
claude mcp add geniads -s user -- node ~/.geniads-mcp-local/geniads-mcp.cjs
```

### Krav

- macOS
- Node.js 18.17 eller nyere — [hent LTS her](https://nodejs.org/)

Install-scriptet tjekker Node og siger til hvis den mangler.

## Hvad der bliver installeret

| | |
|---|---|
| Serveren | `~/.geniads-mcp-local/geniads-mcp.cjs` |
| Nøglen | macOS Keychain, service `geniads-mcp` |
| Claude Desktop-config | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Claude Code-config | `~/.claude.json`, brugerniveau — kun hvis `claude` findes i PATH |

Nøglen gemmes i Keychain, **ikke** i Claude Desktops configfil, som ligger i
klartekst. Configfilen flettes — andre connectors du har sat op, bevares, og der
tages en backup før hver ændring.

Scriptet er idempotent: kør det igen for at opdatere.

## Adgang

Din rolle ligger på platformen og styrer hvad du kan.

- **Alle** kan læse alle skills
- **Admin og team leads** kan desuden oprette, opdatere og slette

Rettighedstjekket sker på platformen ved hvert kald, ikke lokalt.

### Har du fået en ny rolle?

Værktøjslisten hentes når serveren starter. Er du blevet opgraderet, dukker
skriveværktøjerne først op **efter en genstart af Claude Desktop**.

## Når noget går galt

Serveren skelner mellem fire ting, fordi de kræver hver sin handling:

| Besked handler om | Betyder | Gør dette |
|---|---|---|
| Nøgle afvist | Nøglen er ugyldig eller tilbagekaldt | Kør install.sh igen med en ny nøgle |
| Forbigående problem | Platformen har en midlertidig fejl | Vent lidt og prøv igen — din nøgle fejler ikke |
| Kunne ikke nå platformen | Netværksproblem | Tjek din forbindelse |
| Ingen nøgle i Keychain | Ikke installeret færdig | Kør install.sh |

## Udvikling

```bash
npm install
npm test          # unit-tests
npm run typecheck
npm run build     # → dist/geniads-mcp.cjs
bash test/install.test.sh
```

Værktøjsdefinitionerne er **ikke** i dette repo. De hentes fra `GET /api/tools`
ved opstart, filtreret på brugerens rolle, så et nyt værktøj kun skal laves ét
sted. Kan platformen ikke nås, starter serveren ikke.

### Arkitektur

```
Claude Desktop  ──stdio──>  denne server  ──HTTPS──>  platformen  ──>  Supabase + GitHub
```

Serveren er en tynd REST-klient. To ting er værd at kende:

- **`src/api.ts` er det eneste modul der kender API-nøglen.** Den tages ind i
  constructoren og forlader aldrig klassen — heller ikke i en fejlbesked.
- **`src/errors.ts` er et selvstændigt modul med egne tests.** At slå en afvist
  nøgle, en upstream-fejl og en netværksfejl sammen har tidligere kostet dage af
  fejlsøgning.

## Status

Midlertidig løsning mens en sag kører hos Netlify om fejlraten på den hostede
connector. Bliver den løst, flytter vi tilbage.