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

ninaivagam

v2.2.1

Published

MCP server that gives AI agents persistent, project-scoped memory backed by MongoDB

Readme

ninaivagam (நினைவகம்)

ninaivagam (Tamil: நினைவகம், "memory/remembrance") is an open-source MCP (Model Context Protocol) server that gives AI coding agents (like Claude Code, Cursor, and Cline) a persistent, project-scoped memory backed by MongoDB.

Whenever you work across different chat sessions, branches, or days, your AI agent won't lose context. It intelligently stores and retrieves structured knowledge about your software projects: folder layouts, architecture decisions, tech stacks, git branch strategies, coding conventions, and in-progress tasks.


🚀 Quick Setup (Step by Step)

1. Start MongoDB

Ninaivagam relies on MongoDB to store project memories. The quickest way to get it running is via Docker:

docker run -d -p 27017:27017 --name mongo mongo:7

(If you already have a MongoDB cluster, you can just use its connection URI!)

2. Initialize in Your Project

Navigate to the root directory of your project (where you want your AI to remember things) and run the initialization command:

npx -y ninaivagam init

This magic command does the heavy lifting:

  • Automatically derives a unique projectId based on your package.json and Git remote.
  • Outputs the exact JSON settings you need to drop into Claude Code or Cursor.
  • Generates a customized rule block that explicitly teaches your AI agent how and when to fetch or save project memories using the MCP.

3. Connect Your AI Agent

For Claude Code

The init command will output a snippet. Add it to either:

  • Your global config: ~/.claude/settings.json
  • A project-specific config: .claude/settings.json

Example:

{
  "mcpServers": {
    "ninaivagam": {
      "command": "npx",
      "args": ["-y", "ninaivagam"],
      "env": {
        "MONGO_URI": "mongodb://localhost:27017"
      }
    }
  }
}

For Cursor

Open Cursor Settings > MCP > Add server:

  • Type: command
  • Command: npx
  • Args: ["-y", "ninaivagam"]
  • Env: MONGO_URI=mongodb://localhost:27017

Make sure to refresh and confirm the server shows as connected!

4. Provide Instructions to the AI

The init command will print out a block of instructions bordered by ---. Copy that block and paste it into your IDE's instruction file so the AI knows to start using its new memory!

  • For Cursor: Create .cursor/rules/ninaivagam.mdc
  • For Claude Code: Add to CLAUDE.md
  • For Windsurf: Add to .windsurfrules

🛠️ Available MCP Tools

Once connected, your AI agent will automatically have access to these core tools:

| Tool | Inputs | Purpose | |------|--------|---------| | store_memory | projectId, category, key, value, tags? | Create or overwrite a memory entry | | retrieve_memory | projectId, key, category? | Fetch a specific memory by key | | list_memories | projectId, category?, tags?, limit? | List memories (with optional category/tag filtering) | | delete_memory | projectId, category, key | Remove a memory entry |

Memory Categories

You can organize memories using the following predefined categories: architecture · stack · folder-structure · git · convention · task · decision · other · branch · environment · release · feature-flag · reference · business-logic · troubleshooting


🔒 Security (Deep Secret Scanning)

Ninaivagam includes a built-in secret scanner that proactively blocks the persistence of sensitive credentials (like AWS keys, OpenAI keys, or connection strings).

  • Deep Scanning: The scanner doesn't just check the value field; it recursively scans JSON objects in meta and all entries in tags.
  • Global Coverage: Scanning is enforced during manual store_memory calls as well as during bulk operations like ninaivagam import and ninaivagam sync.
  • Non-Destructive: During bulk imports, Ninaivagam will skip individual entries that contain secrets while allowing the rest of the file to import successfully.

⚖️ Handling Ambiguity

Since multiple memory categories can share the same key (e.g., a "database" entry in stack and another in convention), Ninaivagam enforces specificity:

  • If you call retrieve_memory WITHOUT a category and multiple matches exist, Ninaivagam will return an ambiguity warning listing all available categories for that key.
  • This prevents your AI agent from receiving incorrect context and forces it to be explicit in its retrieval strategy.

📃 License

MIT License