npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

anforderungsportal-mcp

v1.8.1

Published

MCP Server for WMC Anforderungsportal – Requirement collection for POs and Staff

Readme

Anforderungsportal MCP Server

MCP (Model Context Protocol) server that exposes WMC Anforderungsportal tools to AI coding assistants like GitHub Copilot, Claude Desktop, and Cursor.

Quick Start (one command)

npm install -g anforderungsportal-mcp

That's it. The installer automatically configures VS Code and Cursor.

Restart VS Code, open chat (Ctrl+L), and type:

login [email protected] your-password

Manual setup (if auto-setup didn't run)

# In any project folder:
npx anforderungsportal-mcp init

# Or to enable in ALL workspaces:
npx anforderungsportal-mcp init --global

The Supabase URL and anon key are built into the package. No env vars needed.

Admin Setup (local dev, full access)

For administrators who need god-mode access (bypasses RLS), add the service role key:

{
  "servers": {
    "anforderungsportal": {
      "command": "node",
      "args": ["./mcp-server/dist/index.js"],
      "env": {
        "SUPABASE_URL": "https://acgxydrisfjbilfgatkq.supabase.co",
        "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key",
        "SUPABASE_ANON_KEY": "your-anon-key"
      }
    }
  }
}

Setup from Source

1. Install dependencies

cd mcp-server
npm install
npm run build

2. Add to your MCP client

Claude Desktop — add to claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "anforderungsportal": {
      "command": "npx",
      "args": ["-y", "anforderungsportal-mcp"]
    }
  }
}

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "anforderungsportal": {
      "command": "npx",
      "args": ["-y", "anforderungsportal-mcp"]
    }
  }
}

Available Tools

Authentication (v1.1.0+)

| Tool | Description | |------|-------------| | login | Sign in as a user (PO, Staff, Admin). Scopes all subsequent calls to that user's RLS policies | | whoami | Check current auth status — logged-in user, role, session expiry | | logout | Sign out, return to admin mode (service-role, RLS bypassed) |

Project Management

| Tool | Description | |------|-------------| | list_projects | List projects with optional status filter | | get_project | Get project details by ID or slug | | create_project | Create a new draft project | | update_project | Update project name, description, template | | submit_for_review | Submit draft for staff review | | approve_project | Approve a pending project (staff) | | reject_project | Reject back to draft (staff) | | activate_project | Activate for client filling (staff) | | archive_project | Archive a project |

Template Management

| Tool | Description | |------|-------------| | list_templates | List all requirement templates | | get_template | Get template with sections & questions | | create_template | Create a new template | | add_section | Add section to a template | | add_question | Add question to a section |

Responses & Requirements

| Tool | Description | |------|-------------| | list_responses | List responses for a project | | get_response_answers | Get answers for a response | | submit_answer | Submit/update an answer |

Members & Feedback

| Tool | Description | |------|-------------| | list_project_members | List members & invitations | | invite_member | Invite client by email | | send_feedback | Send feedback to responder |

Analytics

| Tool | Description | |------|-------------| | project_stats | Get project statistics | | search_projects | Search projects by name |

Security

  • Admin mode (default): Uses SUPABASE_SERVICE_ROLE_KEY — bypasses RLS, full access
  • User mode (after login): Scoped by RLS policies for the logged-in user's role
  • Use the login tool to switch between admin and user modes
  • Never commit keys to version control (.vscode/mcp.json is gitignored)
  • The server runs locally via stdio — no network exposure
  • Search queries are sanitised against PostgREST filter injection

Testing

cd mcp-server
npm test          # Run all 91 unit tests
npm run test:watch  # Watch mode