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

multify-mcp

v0.1.5

Published

JavaScript helpers and schemas for the hosted Multify MCP.

Readme

multify-mcp

multify-mcp is the hosted, first-party MCP for Multify.

It is one MCP server with the full Multify account surface behind it. Contacts, lists, membership actions, and future workspace capabilities all live behind the same server and the same workspace key.

How Multify MCP works

There is only one hosted Multify MCP server. It lives behind the Multify API host and uses a workspace-scoped MCP key generated inside the app.

This is not Claude-specific. Any client, agent runtime, or connector platform that supports remote MCP over HTTP should use the same hosted endpoint and the same workspace key model.

The fixed hosted endpoint is:

https://app.multifyco.com/mcp

For normal usage, the user should only need one secret:

  1. create a workspace MCP key inside Multify
  2. paste that key into the MCP client

The base URL is fixed by Multify. It should not be something the user has to discover.

Quick start

1. Generate a workspace key

Inside Multify:

  1. open Settings
  2. open the MCP section
  3. create a workspace-scoped key
  4. copy it once

The key belongs to the workspace, not to an individual contact/list tool.

2. Connection details for any MCP client

Use this connection contract:

Name: multify-mcp
Transport: http
URL: https://app.multifyco.com/mcp
Authorization: Bearer YOUR_MULTIFY_MCP_KEY

If your client uses a config file instead of a CLI, the shape is usually equivalent to:

{
  "mcpServers": {
    "multify-mcp": {
      "transport": "http",
      "url": "https://app.multifyco.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MULTIFY_MCP_KEY"
      }
    }
  }
}

Field names vary between clients, but the invariants do not:

  • use the fixed URL https://app.multifyco.com/mcp
  • use remote HTTP MCP transport
  • send Authorization: Bearer ...

3. Claude Code token-only helper

npx multify-mcp claude add --token YOUR_MULTIFY_MCP_KEY

That helper wraps the fixed hosted URL for you and runs the Claude Code command. It is a convenience layer, not the primary product model.

Raw Claude Code command:

claude mcp add --transport http multify-mcp https://app.multifyco.com/mcp \
  --header "Authorization: Bearer YOUR_MULTIFY_MCP_KEY"

Claude Code expects auth for remote HTTP MCP servers through --header, so the token is carried in the standard Authorization: Bearer ... header. The only secret is still the workspace MCP key.

4. Connect from custom connectors

Endpoint:

https://app.multifyco.com/mcp

Header:

Authorization: Bearer YOUR_MULTIFY_MCP_KEY

5. Connect from any remote MCP client

Any client that supports remote MCP over Streamable HTTP can use the same hosted endpoint and the same Bearer token pattern.

There is no extra base URL the user needs to discover or configure manually. The hosted Multify MCP endpoint is fixed on the API host.

What this MCP exposes

multify-mcp is one server with one workspace boundary. It currently exposes Multify workspace operations such as:

  • contacts
  • lists
  • list membership actions
  • bulk create/update flows

It does not ask the user to wire Gmail, HubSpot, or other third-party accounts through the MCP itself. Those connections stay inside the Multify app.

Security model

  • keys are workspace-scoped
  • keys are created by workspace owners/admins in the app
  • scopes control what the MCP can do
  • all operations are still enforced by Multify as the source of truth
  • the MCP is an interface over Multify, not a parallel database or permissions system

Python package

The user-facing Python package is:

pip install multify-mcp

Local runtime command:

multify-mcp

This repo intentionally treats the Python runtime as one package: multify-mcp.

Python helper example:

from multify_mcp import build_remote_mcp_connection

connection = build_remote_mcp_connection("YOUR_MULTIFY_MCP_KEY")

print(connection.url)
print(connection.headers["Authorization"])
print(connection.as_dict())

That helper is generic. It is not tied to Claude or any single MCP client.

npm package

The public npm package is also multify-mcp.

npm install multify-mcp

CLI helper:

npx multify-mcp claude add --token YOUR_MULTIFY_MCP_KEY

Example:

import {
  buildAuthorizationHeaders,
  buildRemoteMcpConnection,
  buildClaudeCodeAddArgs,
  buildClaudeCodeAddCommand,
  contactCreateInputSchema,
  DEFAULT_MULTIFY_MCP_URL,
} from "multify-mcp";

const headers = buildAuthorizationHeaders(process.env.MULTIFY_MCP_KEY ?? "");
const connection = buildRemoteMcpConnection(process.env.MULTIFY_MCP_KEY ?? "");
const args = buildClaudeCodeAddArgs(process.env.MULTIFY_MCP_KEY ?? "");
const command = buildClaudeCodeAddCommand(process.env.MULTIFY_MCP_KEY ?? "");

const payload = contactCreateInputSchema.parse({
  list_id: "list_123",
  full_name: "Ada Lovelace",
  email: "[email protected]",
});

console.log(DEFAULT_MULTIFY_MCP_URL);
console.log(headers.Authorization);
console.log(connection);
console.log(args);
console.log(command);
console.log(payload);

The npm side is now one package too. There are no separate public npm packages for contracts and SDK anymore. The generic helper is buildRemoteMcpConnection; the Claude helper is optional.

Local development

Requirements:

  • Node 22+
  • pnpm 11+
  • Python 3.12+
  • uv

Bootstrapping:

pnpm install
pnpm build
pnpm check
UV_CACHE_DIR=/tmp/uv-cache uv run --group dev ruff check .
UV_CACHE_DIR=/tmp/uv-cache uv run --group dev pytest tests/py -q

Release flow

Full release gate:

pnpm install
npm run release:verify

Publish Python:

export UV_PUBLISH_TOKEN=...
npm run release:publish:py

Publish npm helpers:

export NPM_TOKEN=...
npm run release:publish:npm

More detail lives in docs/publishing.md.

Repo structure

  • servers/remote-mcp-py: hosted Python runtime for multify-mcp
  • src: TypeScript schemas and helpers shipped in the public npm package multify-mcp
  • tests/py: auth, HTTP, and tool-service coverage