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

@sprigr/mcp-server

v1.14.1

Published

Sprigr MCP server — local AI agent search with WASM-powered full-text search and hybrid semantic search. Also exports a Workers-compatible runtime for in-process search inside Cloudflare Workers / bundled environments.

Readme

@sprigr/mcp-server

MCP server for AI agents with WASM-powered local full-text search and hybrid semantic search.

Full-text searches run locally via WebAssembly (~5ms). Hybrid semantic search combines keyword matching with vector embeddings for higher relevance. Writes go to the Sprigr API. The binary index auto-refreshes when your data changes.

Two ways to consume this package

| Sub-path | Use it for | Loads WASM via | |---|---|---| | @sprigr/mcp-server (default) | Local Node.js stdio MCP server invoked by Claude Desktop / Cursor / etc. | --target nodejs build, auto-loads from filesystem | | @sprigr/mcp-server/runtime | Cloudflare Workers / bundled environments — embed the search engine directly in your Worker | Consumer injects a WASM module | | @sprigr/mcp-server/wasm-bundler | The companion --target bundler WASM build for the runtime sub-path | Imported as a module by your bundler | | @sprigr/mcp-server/wasm-nodejs | The --target nodejs WASM build, exposed for completeness | Auto-loads via fs |

Workers / bundler example:

import * as wasmModule from '@sprigr/mcp-server/wasm-bundler';
import { createSprigrRuntime } from '@sprigr/mcp-server/runtime';

const runtime = createSprigrRuntime({
  apiKey: env.SPRIGR_API_KEY,
  wasmModule,
});

const results = await runtime.search('my-index', 'wireless headphones');
//   ↑ runs locally via WASM (~5ms), or falls back to the cloud for semantic search

The runtime exposes search, importObjects, getObject, listIndexes, deleteObjects, and invalidate. It auto-invalidates the local engine after writes that go through it.

Quick Start

Add to your AI client config (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "sprigr": {
      "command": "npx",
      "args": ["-y", "@sprigr/mcp-server"],
      "env": {
        "SPRIGR_API_KEY": "your-api-key"
      }
    }
  }
}

Don't have an API key? Ask your AI agent to use the signup tool, or visit sprigr.com.

Environment Variables

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | SPRIGR_API_KEY | Yes | — | Your Sprigr API key | | SPRIGR_API_BASE | No | https://search.sprigr.com | API base URL |

How It Works

AI Agent ──stdio──> @sprigr/mcp-server (local Node.js)
                         │
                         ├── search        → Local WASM engine (~5ms)
                         ├── import/delete → Sprigr API → invalidate local cache
                         └── On change    → re-download binary index → reload WASM
  • Searches run entirely in-process via a compiled WASM search engine, with optional hybrid semantic search for improved relevance
  • Writes (import, delete, create index, update settings) go to the Sprigr API
  • After any write, the local binary index is automatically refreshed on the next search
  • Cache version checks are throttled (5s TTL) to avoid unnecessary API calls

Available Tools

| Tool | Description | |------|-------------| | signup | Create a Sprigr account and get an API key | | list_indexes | List all indexes in your account | | create_index | Create a search index with searchable attributes and facets | | update_settings | Update index settings (searchable attributes, facets, synonyms) | | import_objects | Upsert JSON objects into an index (max 1000/call, same objectID = replace) | | search | Full-text search with filters, facets, pagination, and field selection | | multi_search | Search across multiple indexes in one call | | get_object | Fetch a single object by ID | | export_objects | Export all objects from an index as JSON (paginated) | | get_stats | Get account statistics | | delete_objects | Delete objects by ID (max 1000/call) | | delete_index | Permanently delete an entire index | | clear_index | Remove all objects but keep index settings | | set_alias | Point an alias name at an index (for zero-downtime reindexing) | | delete_alias | Remove an alias | | list_aliases | List all index aliases |

Requirements

  • Node.js 18+

License

MIT