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

@mcp-rune/mcp-rune

v0.107.0

Published

Model-driven framework for building Model Context Protocol servers.

Downloads

111

Readme

Install

npm install @mcp-rune/mcp-rune

New here? Start with the Quickstart — a real MCP server running in under ten minutes, no database or backend required.

Want to poke at a running example first? Scaffold the bookshelf example with one command — a 30-line model, a complete server:

npx @mcp-rune/create new my-app --template bookshelf

A taste

Write a model. That's the spec.

import { BaseModel } from '@mcp-rune/mcp-rune'

export class Book extends BaseModel {
  static override attributes = {
    title: { type: 'string', required: true },
    author: { type: 'string', required: true },
    status: { type: 'enum', values: ['reading', 'done'] },
    rating: { type: 'integer', validation: { min: 1, max: 5 } }
  }
}

From that one declaration, mcp-rune registers the full agent surface — and the tool list does not grow as you add models:

  • Generic CRUD toolslist_models, find_records, create_model, update_model, delete_model cover every model you define.
  • Prompts agents can follow — sections, validation, enum tables and turn-taking, derived from your attributes.
  • Interactive MCP Apps — schema-driven create/edit/search UIs rendered inside Claude Desktop. No per-model HTML.
  • OAuth 2.0, spec-compliant — discovery the way Inspector and strict clients expect (RFC 6749 / 8414 / 8707 / 9728).
  • Docs, generated — every model and tool documents itself.

Both TypeScript and JavaScript are first-class — every example in the docs ships in both.

Retrieval that understands your domain

Most MCP servers can only hand the agent raw rows. mcp-rune indexes an entire dataset three ways — vectors, a relationship graph, and your domain vocabulary — then answers by meaning, aggregate, filter, or stratified sample. The agent reasons over findings, never the whole table.

  • Recall by meaning — page summaries and stored findings are embedded with all-MiniLM-L6-v2 (384-dim) into local pgvector; the semantic mode ranks by cosine distance, no keywords.
  • Walk the relationships — multi-hop ingest follows associations across models and stores the edges; the GraphRAG-aware summary strategies read that graph, not just flat fields.
  • Grounded in your terms — a registry of concepts and business rules grounds every finding in your vocabulary.
  • Act without re-exposinganalysis_act mutates a filtered subset server-side; matched IDs never return to the agent's context.

Six tools — analysis_ingest · analysis_query · analysis_store · analysis_act · analysis_summarize · analysis_clear — opt-in via ANALYSIS_ENABLED=true. Off by default — nothing loads, nothing runs, no startup cost until you turn it on. Local embeddings: no external vector DB, no embedding API.

Documentation

Visit the official documentation for the full guide library. Good places to start:

Support

Having trouble? Ask in the official mcp-rune Discord — the community is happy to help you get unstuck.

For partnerships, security reports, or anything 1:1, email [email protected].

Contributing

New contributors welcome! Check out the Contributors Guide to get started, then browse the good first issues.

Join us on Discord to meet other contributors — we'll help you land your first contribution in no time.

License

MIT © the mcp-rune authors. No telemetry. Self-hosted by default.