Run your Miro workshops, retros, and planning sessions from the command line. Read boards, create stickies, organize frames, and generate diagrams through Claude, Cursor, or any MCP client. 98 tools | Single binary | All platforms | All major AI tools Homebrew (macOS/Linux): One-liner (macOS/Linux): Manual download: See SETUP.md for all platforms 1. Go to miro.com/app/settings/user-profile/apps 2.
npx mdskills install olgasafonova/miro-mcp-server@olgasafonova? Sign in with GitHub to claim this listing.Comprehensive MCP server exposing 98 Miro API tools with excellent documentation, security controls, and token optimization
1# Miro MCP Server23Run your [Miro](https://miro.com) workshops, retros, and planning sessions from the command line. Read boards, create stickies, organize frames, and generate diagrams through Claude, Cursor, or any MCP client.45> **Community project** — Not officially affiliated with Miro. See [official options](#official-vs-community) below.67**98 tools** | **Single binary** | **All platforms** | **All major AI tools**89[](https://github.com/olgasafonova/miro-mcp-server/actions/workflows/ci.yml)10[](https://github.com/olgasafonova/miro-mcp-server/actions/workflows/lint.yml)11[](https://codescene.io/projects/82990)12[](https://opensource.org/licenses/MIT)13[](https://pkg.go.dev/github.com/olgasafonova/miro-mcp-server)14[](https://codecov.io/gh/olgasafonova/miro-mcp-server)15[](#token-efficiency)1617<video src="https://github.com/user-attachments/assets/a27c535e-f3b5-4a3a-ac3c-bea5fe7ebd0b" width="100%" autoplay loop muted playsinline></video>1819---2021## Documentation2223| Document | Description |24|----------|-------------|25| [QUICKSTART.md](QUICKSTART.md) | Get running in 2 minutes |26| [SETUP.md](SETUP.md) | Full setup for all AI tools |27| [CONFIG.md](CONFIG.md) | Configuration reference |28| [PERFORMANCE.md](PERFORMANCE.md) | Optimization guide |29| [CHANGELOG.md](CHANGELOG.md) | Version history |30| [ERRORS.md](ERRORS.md) | Error handling & troubleshooting |3132---3334## Quick Start3536### 1. Install3738**Homebrew (macOS/Linux):**39```bash40brew tap olgasafonova/tap && brew install miro-mcp-server41```4243**One-liner (macOS/Linux):**44```bash45curl -fsSL https://raw.githubusercontent.com/olgasafonova/miro-mcp-server/main/install.sh | sh46```4748**Docker:**49```bash50docker pull ghcr.io/olgasafonova/miro-mcp-server:latest51```5253**Manual download:** See [SETUP.md](SETUP.md) for all platforms5455### 2. Get a Miro Token56571. Go to [miro.com/app/settings/user-profile/apps](https://miro.com/app/settings/user-profile/apps)582. Create an app with `boards:read` and `boards:write` permissions593. Install to your team and copy the token6061### 3. Configure Your AI Tool6263**Claude Code:**64```bash65claude mcp add miro -e MIRO_ACCESS_TOKEN=your-token -- miro-mcp-server66```6768**Claude Desktop / Cursor / VS Code:** See [SETUP.md](SETUP.md)6970**Cursor Marketplace:**71```bash72/add-plugin miro73```7475> **Not working?** [Tell us what made it hard](https://github.com/olgasafonova/miro-mcp-server/issues/new?template=bug_report.yml) — even one sentence helps.7677---7879## What You Can Do8081| Category | Examples |82|----------|----------|83| **Boards** | Create, copy, delete, update, share, list members |84| **Items** | Sticky notes, shapes, text, cards, app cards, images, documents, frames, docs |85| **Diagrams** | Generate flowcharts and sequence diagrams from Mermaid |86| **Docs** | Create and manage Markdown documents on boards |87| **Upload** | Upload and replace local image and document files on boards |88| **Tables** | Discover and inspect tables on boards |89| **Mindmaps** | Create mindmap nodes with parent-child relationships |90| **Code Widgets** | Syntax-highlighted code snippets on boards (v2-experimental) |91| **Bulk Ops** | Create multiple items at once, sticky grids |92| **Tags** | Create, attach, update, and organize with tags |93| **Groups** | Group, list, and manage item groups |94| **Connectors** | Connect items with styled arrows |95| **Export** | Board thumbnails, PDF/SVG export (Enterprise) |9697### Voice Examples9899- *"Add a yellow sticky saying 'Review PRs'"*100- *"Create a flowchart: Start → Decision → End"*101- *"What boards do I have?"*102- *"Share the Design board with jane@example.com"*103- *"Create a mindmap with 'Project Ideas' as root"*104105---106107## Companion Skill: `miro-workflow`108109[](https://getskillcheck.com)110111For Claude clients that support skills (Claude Code, Claude Desktop), this repo includes a [`miro-workflow`](skills/miro-workflow/) skill that describes how to assemble a few common board layouts from the atomic create-item tools.112113Five layouts are covered:114115| Workflow | Trigger phrase examples |116|----------|------------------------|117| **Sprint Board** | "set up a sprint board for sprint 42" |118| **Retrospective** | "create a retro board for our team" |119| **Brainstorm** | "brainstorm board for [topic]" |120| **Story Map** | "map the user journey for [product]" |121| **Kanban** | "kanban for our backlog" |122123Each one specifies frame sizes, gap math, sticky placement, color conventions (the Miro API takes hex for frame fills and named values for stickies; two different vocabularies), and the tool-call order to follow. For single-tool calls ("add one sticky") or read-only inspection, the atomic tools are usually enough on their own.124125The skill is new and likely needs adjustment as more layouts get exercised against real boards. Files live under [`skills/miro-workflow/`](skills/miro-workflow/). Claude Code auto-discovers skills from `~/Projects/claude-code-config/skills/`; for other hosts, follow your client's skill installation docs.126127The badge above is awarded by [SkillCheck Pro](https://getskillcheck.com); this skill currently scores 92/100 with zero Critical issues and zero Warnings. Skills in this repo earn the badge at ≥90/100 with zero Critical and zero Warnings; below that bar, the badge is dropped until the skill passes again.128129---130131## Companion CLI: `miro-cli`132133For shell-first usage, this server has a sibling: [`miro-cli`](https://github.com/olgasafonova/miro-cli). Same author, same Miro API coverage, different runtime. One verb per endpoint, JSON in and out, plus a local SQLite mirror for offline search. Reach for it when you're scripting Miro in CI, bulk-migrating stickies between boards, or querying boards offline without burning API quota.134135The MCP server and the CLI overlap deliberately. Use the MCP server when an agent runtime is in the loop (Claude Code, Claude Desktop, Cursor). Use the CLI when bash, Makefiles, or CI are. Use both if you want.136137Install:138139```bash140brew install olgasafonova/tap/miro-cli141# or142go install github.com/olgasafonova/miro-cli/cmd/miro-cli@latest143```144145---146147## Companion MCP Apps server: `miro-mcp-apps`148149If you want Miro data to render as interactive **UI** in the chat (cards, tables, color clusters, SVG graphs) instead of streamed JSON, there's a TypeScript sibling: [`miro-mcp-apps`](https://github.com/olgasafonova/miro-mcp-apps). Six tools built on the [MCP Apps extension](https://github.com/modelcontextprotocol/ext-apps) (SEP-1865), reusing the same `MIRO_ACCESS_TOKEN`. The two servers run side-by-side: this one for the 98-tool CRUD surface, that one for visual at-a-glance views.150151| You want… | Use |152|---|---|153| Programmatic control: create/update/move/connect items, generate diagrams | `miro-mcp-server` (this repo) |154| Visual board summaries, sticky color clusters, connector graphs rendered inline | [`miro-mcp-apps`](https://github.com/olgasafonova/miro-mcp-apps) |155| Same in bash, CI, or a Makefile | [`miro-cli`](https://github.com/olgasafonova/miro-cli) |156157The MCP Apps pattern is TypeScript-only today (Go SDK has no `ext-apps` helpers), which is why this companion lives in a separate repo instead of bolting onto the Go server.158159---160161## Token Efficiency162163The full tool surface (98 tools) costs roughly **17.2K tokens** of preload; the `essentials` profile trims that to ~2.6K. For sessions where that footprint matters, set `MIRO_TOOLS_PROFILE=essentials` in your client config; the server then registers a curated 15-tool subset (boards, list/find/search, sticky/text/frame/connector creation, list/get/update/delete items) plus one discovery meta-tool. Agents reach the rest via `miro_tool_search` on demand.164165| Profile | Tools | Preload tokens (est.) |166|---|---|---|167| `full` (default) | 98 | ~17,240 |168| `essentials` | 15 | ~2,570 |169170Savings: **~14,700 tokens (85.1% reduction)** when you opt into `essentials`. Description tokens are exact (JSON-marshaled); schema cost is estimated at 200 bytes per tool. Reproduce locally with `go run ./cmd/token-count/`.171172`miro_tool_search(query?, category?, limit?)` is registered in both profiles. It searches tool names, titles, descriptions, and categories with weighted keyword scoring (name 3×, title 2×, category 2.5×, description 1×), returns up to 50 matches, and never recommends itself. Use it when you don't know which tool to reach for, or to scope to a category before browsing. Empty query plus a category returns the category's tools alphabetically.173174See [CONFIG.md](CONFIG.md) for the full env-var reference.175176---177178## All 98 Tools179180<details>181<summary><b>Board Management (9)</b></summary>182183| Tool | Description |184|------|-------------|185| `miro_list_boards` | List accessible boards |186| `miro_find_board` | Find board by name |187| `miro_get_board` | Get board details |188| `miro_get_board_summary` | Get board stats and item counts |189| `miro_get_board_content` | Get all board content for AI analysis |190| `miro_create_board` | Create a new board |191| `miro_copy_board` | Copy an existing board |192| `miro_update_board` | Update board name/description |193| `miro_delete_board` | Delete a board |194195</details>196197<details>198<summary><b>Board Members (5)</b></summary>199200| Tool | Description |201|------|-------------|202| `miro_list_board_members` | List users with access |203| `miro_get_board_member` | Get member details |204| `miro_share_board` | Share board via email *(requires `MIRO_SHARE_ALLOWED_DOMAINS`; fail-closed by default)* |205| `miro_update_board_member` | Update member role *(Destructive: prompts before role escalation)* |206| `miro_remove_board_member` | Remove member from board |207208> Sharing and role-change tools are guarded for prompt-injection safety. See [`SECURITY.md`](SECURITY.md#board-sharing-allowlist) and [`CONFIG.md`](CONFIG.md#environment-variables).209210</details>211212<details>213<summary><b>Create Items (18)</b></summary>214215| Tool | Description |216|------|-------------|217| `miro_create_sticky` | Create a sticky note |218| `miro_create_sticky_grid` | Create stickies in a grid layout |219| `miro_create_shape` | Create a shape (rectangle, circle, etc.) |220| `miro_create_flowchart_shape` | Create flowchart shape (experimental API) |221| `miro_create_text` | Create text element |222| `miro_create_frame` | Create a frame container |223| `miro_create_card` | Create a card with due date |224| `miro_create_app_card` | Create app card with custom fields |225| `miro_create_image` | Add image from URL |226| `miro_upload_image` | Upload local image file |227| `miro_upload_document` | Upload local document file (PDF, DOCX, etc.) |228| `miro_create_doc` | Create Markdown document |229| `miro_create_document` | Add document from URL |230| `miro_create_embed` | Embed YouTube, Figma, etc. |231| `miro_create_connector` | Connect two items with arrow |232| `miro_create_group` | Group items together |233| `miro_create_mindmap_node` | Create mindmap node |234| `miro_bulk_create` | Create multiple items at once |235236</details>237238<details>239<summary><b>Frames (4)</b></summary>240241| Tool | Description |242|------|-------------|243| `miro_get_frame` | Get frame details |244| `miro_update_frame` | Update frame title/color/size |245| `miro_delete_frame` | Delete a frame |246| `miro_get_frame_items` | List items inside a frame |247248</details>249250<details>251<summary><b>Mindmaps (3)</b></summary>252253| Tool | Description |254|------|-------------|255| `miro_get_mindmap_node` | Get node details |256| `miro_list_mindmap_nodes` | List all mindmap nodes |257| `miro_delete_mindmap_node` | Delete a mindmap node |258259</details>260261<details>262<summary><b>Code Widgets (6, v2-experimental)</b></summary>263264| Tool | Description |265|------|-------------|266| `miro_create_code_widget` | Add a syntax-highlighted code snippet |267| `miro_get_code_widget` | Get full source and settings |268| `miro_list_code_widgets` | List widgets with code previews |269| `miro_update_code_widget` | Change code, language, title, or size |270| `miro_move_code_widget` | Move to a new position |271| `miro_delete_code_widget` | Delete a code widget |272273</details>274275<details>276<summary><b>Read Items (8)</b></summary>277278| Tool | Description |279|------|-------------|280| `miro_list_items` | List items on a board |281| `miro_list_all_items` | Get ALL items with auto-pagination |282| `miro_get_item` | Get item details |283| `miro_get_image` | Get image details and Miro-hosted URL |284| `miro_get_document` | Get document details and Miro-hosted URL |285| `miro_get_app_card` | Get app card details |286| `miro_get_doc` | Get Markdown document content |287| `miro_search_board` | Search items by content |288289</details>290291<details>292<summary><b>Update & Delete Items (18)</b></summary>293294| Tool | Description |295|------|-------------|296| `miro_update_item` | Update item content/position/color |297| `miro_update_sticky` | Update sticky note (shape, color) |298| `miro_update_shape` | Update shape (fill, text color, type) |299| `miro_update_text` | Update text element |300| `miro_update_card` | Update card fields |301| `miro_update_image` | Update image properties |302| `miro_update_image_from_file` | Replace image file on existing item |303| `miro_update_document` | Update document properties |304| `miro_update_document_from_file` | Replace document file on existing item |305| `miro_update_embed` | Update embed properties |306| `miro_update_group` | Update group properties |307| `miro_update_app_card` | Update app card fields |308| `miro_bulk_update` | Update multiple items at once |309| `miro_delete_item` | Delete an item |310| `miro_delete_app_card` | Delete an app card |311| `miro_update_doc` | Update document content (full or find-and-replace) |312| `miro_delete_doc` | Delete a Markdown document |313| `miro_bulk_delete` | Delete multiple items at once |314315</details>316317<details>318<summary><b>Tags (9)</b></summary>319320| Tool | Description |321|------|-------------|322| `miro_create_tag` | Create a tag |323| `miro_list_tags` | List all tags on board |324| `miro_get_tag` | Get tag details by ID |325| `miro_attach_tag` | Attach tag to item |326| `miro_detach_tag` | Remove tag from item |327| `miro_get_item_tags` | Get tags on an item |328| `miro_get_items_by_tag` | Get all items with a specific tag |329| `miro_update_tag` | Update tag name/color |330| `miro_delete_tag` | Delete a tag |331332</details>333334<details>335<summary><b>Connectors (4)</b></summary>336337| Tool | Description |338|------|-------------|339| `miro_list_connectors` | List all connectors |340| `miro_get_connector` | Get connector details |341| `miro_update_connector` | Update connector style/caption |342| `miro_delete_connector` | Delete a connector |343344</details>345346<details>347<summary><b>Groups (4)</b></summary>348349| Tool | Description |350|------|-------------|351| `miro_list_groups` | List all groups on board |352| `miro_get_group` | Get group details |353| `miro_get_group_items` | List items in a group |354| `miro_delete_group` | Delete or ungroup a group |355356</details>357358<details>359<summary><b>Export (4)</b></summary>360361| Tool | Description |362|------|-------------|363| `miro_get_board_picture` | Get board thumbnail |364| `miro_create_export_job` | Export to PDF/SVG (Enterprise) |365| `miro_get_export_job_status` | Check export progress |366| `miro_get_export_job_results` | Get download links |367368</details>369370<details>371<summary><b>Tables (2)</b></summary>372373| Tool | Description |374|------|-------------|375| `miro_list_tables` | List tables (data_table_format) on a board |376| `miro_get_table` | Get table metadata by ID |377378</details>379380<details>381<summary><b>Diagrams & Audit (3)</b></summary>382383| Tool | Description |384|------|-------------|385| `miro_generate_diagram` | Create diagram from Mermaid syntax |386| `miro_get_audit_log` | Query local execution log |387| `miro_get_desire_paths` | Query agent normalization patterns (what agents sent vs. what got auto-corrected) |388389</details>390391---392393## Diagram Generation394395Create flowcharts and sequence diagrams from Mermaid syntax:396397**Flowchart:**398```399flowchart TB400 A[Start] --> B{Decision}401 B -->|Yes| C[Success]402 B -->|No| D[Retry]403 D --> B404```405406**Sequence Diagram:**407```408sequenceDiagram409 Alice->>Bob: Hello Bob!410 Bob-->>Alice: Hi Alice!411```412413**Supported:** `flowchart`/`graph`, `sequenceDiagram`, directions (TB/LR/BT/RL), shapes (`[]` rectangle, `{}` diamond, `(())` circle), labeled edges.414415---416417## Why This Server?418419| Feature | This Server | TypeScript alternatives |420|---------|-------------|------------------------|421| **Runtime** | Single binary | Requires Node.js |422| **Size** | ~14MB | 100MB+ with node_modules |423| **Startup** | ~50ms | 500ms-2s |424| **Memory** | ~10MB idle | ~50MB idle |425| **Diagram generation** | Built-in Mermaid parser | AI-based |426| **Rate limiting** | Automatic with backoff | Manual |427| **Caching** | 2-minute TTL | None |428| **Circuit breaker** | Yes | No |429430---431432## Official vs Community433434Miro released their [official MCP server](https://miro.com/ai/mcp/) in December 2025 and has grown it substantially since. Comparison refreshed 21-07-2026 against their [current tool documentation](https://developers.miro.com/docs/miro-mcp-prompts) (31 documented tools):435436| Feature | This Server | Official Miro MCP |437|---------|-------------|-------------------|438| **Tools** | 98 (or 15 in `essentials` profile) | 31 |439| **Transport** | stdio + HTTP | HTTPS only (hosted at mcp.miro.com) |440| **Self-hosting** | Yes | No |441| **Offline mode** | Yes | No |442| **Auth** | Token + OAuth2 | OAuth 2.1, dynamic client registration (Enterprise orgs need admin enablement) |443| **Diagram generation** | Mermaid syntax | Custom DSL (architecture, sequence, ER) |444| **AI context** | No | Yes (context_explore, context_get) |445| **Code widgets** | 6 tools incl. position move (v2-experimental) | 5 tools (no move) |446| **Comments** | No | Yes (list, reply, resolve) |447| **Docs & Tables** | Doc formats + table read | Doc create/update + table create/sync |448| **Prototypes** | No | Yes (read, create) |449| **Bulk operations** | Yes | Partial (table_sync_rows upsert only) |450| **Mindmaps** | Yes | No |451| **Tags & Groups** | Yes | No |452| **Connectors CRUD** | Yes | No |453| **Item-level CRUD** | Yes (sticky, shape, text, card, image, document, embed, frame) | Layout DSL, not per-item verbs |454| **Board sharing / members** | Yes (allowlist-gated) | No |455| **Export** | Yes (PDF/SVG) | No |456| **MCP Resources** | 3 | No |457| **MCP Prompts** | 5 workflows | Bundled agent skills (browse, code-review, diagram, doc, table) |458| **Runtime** | Single Go binary | Hosted (closed-source) |459| **Rate limiting** | Adaptive | N/A (hosted) |460| **Caching** | Built-in (2min TTL) | N/A |461| **Metrics** | Prometheus | No |462| **OpenTelemetry** | Built-in ([mcp-otel-go](https://github.com/olgasafonova/mcp-otel-go), [OTel Registry](https://opentelemetry.io/ecosystem/registry/?language=go&search=mcp)) | No |463464**When to use the official server:** You want zero-setup via plugin marketplace, OAuth 2.1 enterprise security, AI-powered board context extraction, or code-to-board workflows.465466**When to use this server:** You need full API coverage (98 vs 31 tools, or a tunable 15-tool `essentials` mode), offline/self-hosted operation, bulk ops, mindmaps, tags, connectors, export, or a lightweight binary.467468Both can coexist — use different MCP server names in your config.469470---471472## Performance473474- **Caching:** 2-minute TTL reduces API calls475- **Rate limiting:** Adapts to Miro's rate limit headers476- **Circuit breaker:** Isolates failing endpoints477- **Parallel bulk ops:** Creates items concurrently478- **Token validation:** Fails fast on startup with clear error479- **Transient error retry:** Auto-retries 502/503/504 with backoff480- **OpenTelemetry:** Built-in tracing and metrics via [mcp-otel-go](https://github.com/olgasafonova/mcp-otel-go) ([OTel Registry](https://opentelemetry.io/ecosystem/registry/?language=go&search=mcp))481482See [PERFORMANCE.md](PERFORMANCE.md) for optimization tips and benchmarks.483484---485486## HTTP Mode Endpoints487488When running with `-http :8080`:489490| Endpoint | Description |491|----------|-------------|492| `/` | MCP protocol (Streamable HTTP) |493| `/health` | Health check (JSON) |494| `/health?deep=true` | Deep health check (tests Miro API) |495| `/metrics` | Prometheus metrics |496| `/.well-known/mcp-server-card` | [SEP-2127](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127) Server Card (JSON) via [mcp-servercard-go](https://github.com/olgasafonova/mcp-servercard-go) |497498**Health check response:**499```json500{501 "status": "healthy",502 "server": "miro-mcp-server",503 "version": "1.21.0",504 "uptime": "2h30m",505 "components": {506 "config": {"status": "healthy"},507 "miro_api": {"status": "healthy", "latency": "145ms"}508 }509}510```511512---513514## Development515516```bash517# Build518make build519520# Run tests521make test522523# Run with coverage524make test-cover525526# Lint527make lint528529# Build for all platforms530make build-all531532# See all targets533make help534```535536---537538## Docker Deployment539540**Quick start:**541```bash542# Using Docker Compose543export MIRO_ACCESS_TOKEN=your-token544docker compose up -d545546# Or build and run manually547docker build -t miro-mcp-server .548docker run -e MIRO_ACCESS_TOKEN=xxx -p 8080:8080 miro-mcp-server549```550551**docker-compose.yml features:**552- Health checks configured553- Resource limits template554- Environment variable passthrough555556---557558## Debugging with MCP Inspector559560Test and debug the server interactively with [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector):561562```bash563# Install and run (no setup required)564npx @modelcontextprotocol/inspector miro-mcp-server565566# With environment variables567MIRO_ACCESS_TOKEN=your-token npx @modelcontextprotocol/inspector miro-mcp-server568```569570Open `http://localhost:6274` to:571- Browse all 98 tools with their schemas572- Test tool calls interactively573- View raw JSON-RPC messages574- Debug parameter validation575576See [SETUP.md](SETUP.md#debugging) for more debugging options.577578---579580## Supported Platforms581582| Platform | Binary |583|----------|--------|584| macOS (Apple Silicon) | `miro-mcp-server-darwin-arm64` |585| macOS (Intel) | `miro-mcp-server-darwin-amd64` |586| Linux (x64) | `miro-mcp-server-linux-amd64` |587| Linux (ARM64) | `miro-mcp-server-linux-arm64` |588| Windows (x64) | `miro-mcp-server-windows-amd64.exe` |589| Docker | `ghcr.io/olgasafonova/miro-mcp-server` |590591---592593## Supported AI Tools594595| Tool | Status |596|------|--------|597| Claude Code | Tested |598| Claude Desktop | Tested |599| Cursor | Tested |600| VS Code + GitHub Copilot | Supported |601| Windsurf | Supported |602| Replit | Supported |603| Any MCP-compatible client | Supported |604605See [SETUP.md](SETUP.md) for configuration guides.606607---608609## Account Compatibility610611| Account Type | Support |612|--------------|---------|613| Free | Full access to all 98 tools |614| Team | Full access to all 98 tools |615| Business | Full access to all 98 tools |616| Enterprise | Full access + export to PDF/SVG |617618The 6 code widget tools use Miro's v2-experimental API; availability may vary by account or plan, and the endpoints may change before GA.619620---621622## Like This Project?623624If this server saved you time, consider giving it a ⭐ on GitHub. It helps others discover the project.625626---627628## More MCP Servers629630Check out my other MCP servers:631632| Server | Description | Stars |633|--------|-------------|-------|634| [gleif-mcp-server](https://github.com/olgasafonova/gleif-mcp-server) | Access GLEIF LEI database. Look up company identities, verify legal entities. |  |635| [mediawiki-mcp-server](https://github.com/olgasafonova/mediawiki-mcp-server) | Connect AI to any MediaWiki wiki. Search, read, edit wiki content. |  |636| [nordic-registry-mcp-server](https://github.com/olgasafonova/nordic-registry-mcp-server) | Access Nordic business registries. Look up companies across Norway, Denmark, Finland, Sweden. |  |637| [productplan-mcp-server](https://github.com/olgasafonova/productplan-mcp-server) | Talk to your ProductPlan roadmaps. Query OKRs, ideas, launches. |  |638| [tilbudstrolden-mcp](https://github.com/olgasafonova/tilbudstrolden-mcp) | Nordic grocery deal hunting. Find offers, plan meals, track spending. |  |639| [mcp-servercard-go](https://github.com/olgasafonova/mcp-servercard-go) | Go library for SEP-2127 Server Cards. Pre-connect discovery for MCP servers. |  |640641---642643## License644645MIT646647---648649<p align="center">650 Built for the <a href="https://miro.com">Miro</a> and <a href="https://modelcontextprotocol.io">MCP</a> communities.651 <br>652 <sub>Miro is a trademark of Miro Inc. This project is not affiliated with or endorsed by Miro.</sub>653</p>654
Full transparency — inspect the skill content before installing.