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

@pulsemcp/pulse-subregistry

v0.0.2

Published

MCP server for browsing the PulseMCP Sub-Registry

Readme

Pulse Sub-Registry MCP Server

Haven't heard about MCP yet? The easiest way to keep up-to-date is to read our weekly newsletter at PulseMCP.


This is an MCP (Model Context Protocol) Server that provides access to the PulseMCP Sub-Registry, allowing you to browse and discover MCP servers.

This project is built and maintained by PulseMCP.

Table of Contents

Highlights

Browse MCP servers: Search and discover MCP servers from the PulseMCP Sub-Registry.

Get server details: Retrieve detailed information about specific servers including versions, descriptions, and repository links.

Pagination support: Handle large result sets with cursor-based pagination.

Capabilities

This server is built and tested on macOS with Claude Desktop. It should work with other MCP clients as well.

| Tool Name | Description | | ------------------ | ----------------------------------------------------------------------------------------------- | | list_servers | Browse MCP servers from the Sub-Registry with optional search and pagination. | | get_server | Get detailed information about a specific MCP server by name and version. | | switch_tenant_id | (Admin) Switch the active tenant ID at runtime. Requires SHOW_ADMIN_TOOLS=true to be visible. |

Usage Tips

  • Use list_servers to browse available MCP servers. You can search by name or title.
  • Use pagination with the cursor parameter when there are many results.
  • Use get_server to get detailed information about a specific server.
  • The version parameter in get_server defaults to "latest" but you can specify a specific version.

Auto-Truncation

To reduce context size, responses are automatically truncated:

  • Strings longer than 200 characters are replaced with a truncation message
  • Deep objects (at depth 6+) larger than 500 characters are replaced with a truncation message

Truncated values show the exact expand_fields path needed to view the full content:

{
  "description": "[TRUNCATED - use expand_fields: [\"servers[].server.description\"] to see full content]"
}

Use the expand_fields parameter to view full content for specific fields:

expand_fields: ["servers[].server.description", "servers[].server.readme"]

Examples

Browsing Servers

User: "What MCP servers are available for GitHub?"
Assistant: I'll search for GitHub-related MCP servers.

[Uses list_servers tool with search: "github"]

I found several GitHub-related MCP servers:
- @anthropic/mcp-server-github - Official GitHub integration
- github-issues-server - Manage GitHub issues
...

Getting Server Details

User: "Tell me more about the filesystem MCP server"
Assistant: I'll get the details for that server.

[Uses get_server tool with server_name: "@anthropic/mcp-server-filesystem"]

The filesystem MCP server (version 1.0.0) provides:
- Description: Access and manage local filesystem
- Repository: https://github.com/anthropics/mcp-servers
...

Pagination

User: "Show me more servers"
Assistant: I'll get the next page of results.

[Uses list_servers tool with cursor from previous response]

Here are more servers...

Setup

Prerequisites

  • Node.js (recommended: v18 or higher)
  • A PulseMCP API key (get one at https://www.pulsemcp.com/)
  • Claude Desktop application (for local setup)

Environment Variables

| Environment Variable | Description | Required | Default | | -------------------------------- | ------------------------------------------------------ | -------- | ------- | | PULSEMCP_SUBREGISTRY_API_KEY | Your PulseMCP API key | Yes | N/A | | PULSEMCP_SUBREGISTRY_TENANT_ID | Your tenant identifier (for multi-tenant use) | No | N/A | | SHOW_ADMIN_TOOLS | Set to true to enable admin tools (switch_tenant_id) | No | N/A |

Claude Desktop

Local Setup

You'll need Node.js installed on your machine to run the local version.

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this configuration to your Claude Desktop config file:

{
  "mcpServers": {
    "pulse-subregistry": {
      "command": "npx",
      "args": ["-y", "@pulsemcp/pulse-subregistry"],
      "env": {
        "PULSEMCP_SUBREGISTRY_API_KEY": "your-api-key-here"
      }
    }
  }
}

To set up the local version:

  1. Clone or download the repository
  2. Navigate to the local directory: cd pulse-subregistry/local
  3. Install dependencies: npm install
  4. Build the project: npm run build
  5. Update your Claude Desktop config with the correct path
  6. Restart Claude Desktop

Development

Project Structure

pulse-subregistry/
├── local/                 # Local server implementation
│   ├── src/
│   │   └── index.ts      # Main entry point
│   ├── build/            # Compiled output
│   └── package.json
├── shared/               # Shared business logic
│   ├── src/
│   │   ├── server.ts     # Server factory
│   │   ├── tools.ts      # Tool registration
│   │   ├── tools/        # Individual tools
│   │   ├── client.ts     # API client
│   │   └── types.ts      # Type definitions
│   └── package.json
└── tests/                # Test suite
    ├── functional/       # Unit tests
    └── integration/      # Integration tests

Running in Development Mode

# Build shared module first
cd shared
npm install
npm run build

# Run local server in development
cd ../local
npm install
npm run dev

Testing

# Install all dependencies
npm run install-all

# Run unit tests
npm test

# Run integration tests
npm run test:integration

# Run all tests
npm run test:all

Linting and Formatting

# Check for linting issues
npm run lint

# Auto-fix linting issues
npm run lint:fix

# Format all code
npm run format

Tools Reference

list_servers

Browse MCP servers from the PulseMCP Sub-Registry.

Parameters:

  • limit (number, optional): Maximum number of servers to return (1-100). Default: 30.
  • cursor (string, optional): Pagination cursor from a previous response.
  • search (string, optional): Search term to filter servers by name or title.
  • updated_since (string, optional): ISO 8601 timestamp to filter servers updated after this date. Example: "2024-01-01T00:00:00Z".
  • latest_only (boolean, optional): If true (default), only returns the latest version of each server. Set to false to include all versions.
  • expand_fields (array, optional): Array of dot-notation paths to show in full (not truncated). By default, long strings are truncated. Examples: ["servers[].server.description", "servers[].server.readme"].

get_server

Get detailed information about a specific MCP server.

Parameters:

  • server_name (string, required): The name of the server to look up.
  • version (string, optional): Specific version to retrieve. Default: "latest".
  • expand_fields (array, optional): Array of dot-notation paths to show in full (not truncated). Examples: ["server.description", "server.readme"].

switch_tenant_id

Switch the active tenant ID used for subsequent API requests. This is an admin tool that is hidden by default. Set SHOW_ADMIN_TOOLS=true to enable it.

Parameters:

  • tenant_id (string, required): The tenant ID to switch to. Pass an empty string to clear the tenant ID and revert to the default.

License

MIT


Local Configuration

This section contains local-specific configuration for the Pulse Directory MCP server.

Direct Execution

If you've cloned the repository, you can run the server directly:

cd local
npm install
npm run build
PULSEMCP_SUBREGISTRY_API_KEY=your-key node build/index.js

Development Mode

For development with auto-reload:

cd local
npm run dev