Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Loomiomcp

FreeNot checked

Loomio tools for Claude. Local install via npx, org-wide via Custom Connectors. Read-only mode supported.

GitHubEmbed

About

Loomio tools for Claude. Local install via npx, org-wide via Custom Connectors. Read-only mode supported.

README

npm CI License: Apache-2.0 Glama

Model Context Protocol server for Loomio. Lets Claude (Desktop, Code, or web Projects via Custom Connector) read and write Loomio discussions, polls, comments, and group memberships — and analyse member activity — in plain English. Targets Loomio's b2 API — the canonical surface documented at /help/api2 and the namespace where the controllers actually live in the open-source repo.

Tools (b2, per-user ?api_key=):

  • get_discussion(id_or_key) — fetch one discussion
  • list_discussions(group_id, status?, limit?, offset?) — list a group's discussions
  • create_discussion(title, group_id, …) — start a new one
  • get_poll(id_or_key) — fetch one poll
  • list_polls(group_id, status?, limit?, offset?) — list a group's polls
  • create_poll(title, poll_type, …) — start a new poll
  • list_memberships(group_id, limit?, offset?) — list a group's members with email addresses. Requires the connector's user to be a group admin (coordinator); Loomio only returns the member list to admins. On a 403 the connector probes to explain why — bot lacks the admin role vs. invalid key vs. not-a-member — and points at get_user_activity / list_events for names/ids (email stays admin-only).
  • list_groups({start_id?, end_id?, stop_after_consecutive_misses?}) — enumerate visible groups by probing b2/polls across an id range. Loomio has no api-key-authed list-groups endpoint; this is the workaround. Default scans are ~50–200 outbound calls; a single invocation is capped at 500 ids
  • list_events(discussion_id, limit?, offset?, kinds?) — the event stream for one discussion (comments, reactions, stances, outcomes, …) with actor_id, kind, timestamps, and embedded users / comments / polls. With no limit/offset it paginates up to a bounded cap and reports scope.complete; with either pagination knob it returns that one page.
  • get_user_activity(user_id, group_ids, since?, until?) — aggregate one user's participation across groups (counts by kind / group / month, first/last activity). The primary tool for any user-centric question; fans out server-side with a bounded budget and reports completeness via scope.complete. If both since and until are supplied, until must be later than since.
  • manage_memberships({group_id, emails, remove_absent}) — add and (with remove_absent: true) remove members. See SECURITY.md before using remove_absent.
  • create_comment(discussion_id, body, body_format?) — reply on a discussion

Opt-in admin tools (b3, server-instance secret ?b3_api_key=):

Set LOOMIO_B3_API_KEY to enable. Only useful for Loomio instance operators.

  • deactivate_user(id) — disable a user account instance-wide
  • reactivate_user(id) — re-enable a previously deactivated user

Quick start (stdio, local)

LOOMIO_API_KEY=… npx loomiomcp

Add it to your Claude Desktop / Claude Code config the same way you would any stdio MCP server.

Remote (HTTP)

See DEPLOY.md for Cloud Run.

Auth

Loomio's b2 API authenticates by API key passed as a ?api_key=… query parameter. The connector injects it server-side; it never reaches the MCP client. Generate one in Loomio under your profile → API keys.

The optional b3 admin namespace uses a different secret (?b3_api_key=…, validated against ENV['B3_API_KEY'] on the Loomio server, >16 chars). Only relevant if you operate a Loomio instance.

Read-only mode

Set LOOMIO_MCP_READONLY=1 to register only the 8 read tools (get_* / list_* / get_user_activity). All write tools (create_*, manage_*) are skipped at server-init time. This is the mode the Cloud Run deployment runs in.

Docs map

File When to read
INSTALL.md "I want to use this locally with Claude Desktop / Code today"
DEPLOY.md "I want to run this as a remote HTTP/OAuth endpoint"
HOWTO.md "I want example prompts and use cases"
DESIGN.md "I want to understand the load-bearing choices"
NOTES-ON-LOOMIO-API.md "I'm hitting a weird Loomio behaviour, or want the line-by-line endpoint reference"
SECURITY.md "I'm doing a security review or rotating secrets"
OPTIMIZATIONS.md "I want observability / usage analytics queries"
CONTRIBUTING.md "I want to add a tool or send a PR"
CHANGELOG.md "What changed?"

License

Apache-2.0

from github.com/soil-dev/loomiomcp

Install Loomiomcp in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install loomiomcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add loomiomcp -- npx -y loomiomcp

FAQ

Is Loomiomcp MCP free?

Yes, Loomiomcp MCP is free — one-click install via Unyly at no cost.

Does Loomiomcp need an API key?

No, Loomiomcp runs without API keys or environment variables.

Is Loomiomcp hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Loomiomcp in Claude Desktop, Claude Code or Cursor?

Open Loomiomcp on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Loomiomcp with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs