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

@vectojs/brings-mcp

v0.2.1

Published

Local-first MCP server for Brings design documents.

Readme

Brings MCP

@vectojs/brings-mcp is a local-first Model Context Protocol server for inspecting and changing Brings schema-v1 design documents. It exposes named design intentions backed by @vectojs/brings-core; it does not provide a generic command escape hatch, cloud sync, accounts, or collaboration.

Run

The stdio server runs with Bun:

bun add --global @vectojs/brings-mcp
brings-mcp

Configure the command brings-mcp in an MCP client after installing the package globally.

Tools

| Tool | Intention | | ---------------------------- | ------------------------------------------------- | | brings_inspect_document | Validate and summarize one local document | | brings_create_frame | Create a Frame at parent-local coordinates | | brings_create_rectangle | Create a Rectangle at parent-local coordinates | | brings_create_text | Create Text at parent-local coordinates | | brings_set_node_properties | Apply one compatible property patch | | brings_transform_nodes | Apply one page-space affine transform | | brings_delete_nodes | Delete selected subtrees atomically | | brings_group_nodes | Group active-page sibling nodes | | brings_ungroup_node | Dissolve one Group while preserving geometry | | brings_move_nodes | Reorder or reparent nodes at an exact layer index |

Mutation tools require path and an integer expectedRevision from zero through Number.MAX_SAFE_INTEGER. They accept optional dryRun; create tools return generated IDs so an Agent can replay a preview exactly. Creation coordinates are parent-local, while transform deltas and scale origins are page-space. Paint strings are exactly #RRGGBB or #RRGGBBAA; nullable paints use explicit null.

Every successful or Core/filesystem-failed mutation returns the same JSON in structuredContent and a text content block. The envelope reports the operation, file, revision transition or conflict, affected/generated node IDs, selection, and warnings. Protocol-level input-schema rejection remains an MCP invalid-parameters response and does not invoke a document operation.

Safe workflow

  1. Call brings_inspect_document and capture revision.
  2. Choose one named mutation tool and pass that revision.
  3. Use dryRun: true when a preview is useful.
  4. Replay every generated ID explicitly for the durable call.
  5. Inspect again and verify the revision and affected nodes.

Mutations acquire <file>.brings.lock, reject symlinks, non-regular files and multi-link files, validate through Core, execute one command, and atomically replace the target. document.revision-conflict and document.locked never change the file. Brings does not guess that a lock is stale; remove it only after a human confirms the recorded process is gone.

If lock release fails after a committed replacement, the successful result contains document.lock-release-failed in warnings. The document changed and the sidecar lock needs manual recovery. Unix mode bits are preserved, while ownership follows the process and ACLs or extended attributes are not preserved.

Development

bun install --frozen-lockfile
bun run verify

The integration suite uses the real MCP SDK stdio client and server transport.

License

MIT