Show HN: Cursor IDE now remembers your coding prefs using MCP

107 points by roseway4 3 days ago

Hi, I'm Daniel from Zep. I've integrated the Cursor IDE with Graphiti, our open-source temporal knowledge graph framework, to provide Cursor with persistent memory across sessions. The goal was simple: help Cursor remember your coding preferences, standards, and project specs, so you don't have to constantly remind it.

Before this integration, Cursor (an AI-assisted IDE many of us already use daily) lacked a robust way to persist user context. To solve this, I used Graphiti’s Model Context Protocol (MCP) server, which allows structured data exchange between the IDE and Graphiti's temporal knowledge graph.

Key points of how this works:

- Custom entities like 'Requirement', 'Preference', and 'Procedure' precisely capture coding standards and project specs.

- Real-time updates let Cursor adapt instantly—if you change frameworks or update standards, the memory updates immediately.

- Persistent retrieval ensures Cursor always recalls your latest preferences and project decisions, across new agent sessions, projects, and even after restarting the IDE.

I’d love your feedback—particularly on the approach and how it fits your workflow.

Here's a detailed write-up: https://www.getzep.com/blog/cursor-adding-memory-with-graphi...

GitHub Repo: https://github.com/getzep/graphiti

-Daniel

jasonjmcghee 3 days ago

What's the advantage over the built-in solution? (and before it, .cursorrules)

https://docs.cursor.com/context/rules-for-ai

  • striking 3 days ago

    You add some additional instructions to the Cursor rules here: https://github.com/getzep/graphiti/tree/main/mcp_server#inte...

    I think the difference is that Cursor doesn't update its rules automatically as you work, while this might?

    • dan_voronov 3 days ago

      .cursorrules and other files that are added as system instructions in Cursor are just files, meaning the agent can edit them easely - you can tell it from the chat to add something to a rule and it will do it.

      You are also wrong that it cannot do this automatically: if you add to the system instruction to record all important decisions in .cursorrules, it will record them there. automatically

    • roseway4 3 days ago

      Correct. The Graphiti MCP server, with the help of the agent, stores and retrieves preferences and requirements automatically without requiring rule changes.

    • rahimnathwani 3 days ago

      But you could tell cursor to update its rules automatically, no?

bfeynman 3 days ago

The over engineering here is commendable for something that provides most likely marginal value whilst still needing more api calls to summarize everything you do.

  • pizzafeelsright 3 days ago

    You've described my job for the last few years.

  • zachlatta 3 days ago

    Come on. You don’t need to be a bully. This person worked hard on their thing.

  • yard2010 2 days ago

    It's a matter of perspective.

  • roseway4 3 days ago

    We built Graphiti's MCP server for many different use cases. It's a great enhancement to Cursor, but may not offer significant value for your use case. No offense taken.

    • yard2010 2 days ago

      I've been looking for a thing like this in the last few weeks to add memory to my bot. Initially I started implementing a poor man solution, realizing how hard the problem is. Thank you for creating this! This is awesome. Best of luck monetizing this!

      • roseway4 2 days ago

        Thank you! Zep, our commercial memory service, utilized Graphiti as it's internal memory store.

ekaesmem 3 days ago

The concept is promising, but I tested it and found the performance quite poor. I used one of my Python projects for the test, which consists of about 10k lines of Python code. The model I utilized was Claude 3.7 Sonnet with thinking.

in the first conversation round, I asked Claude to grasp the overall project and initialize its memory. Unfortunately, Claude experienced a hallucination and generated an episode that included a full name entirely unrelated to my project's actual full name, as my project name is an abbreviation.

In the second conversation round, I provided Claude with the full name of my project and requested it to correct its memory. In response, Claude apologized and claimed that it now understood the full name of my project, but it did not utilize any MCP command.

In the third conversation round, I specifically asked it to use the MCP command to update its memory. Claude successfully added a new episode but failed to remove the incorrect old episode.

It wasn't until the fourth conversation round that I directly pointed out that it should eliminate the incorrect old episode, and Claude finally completed the memory initialization that should have been accomplished at the end of the first round.

I have set up the correct Cursor Rules according to the README.

At this point, it appears this project is challenging to use with natural language. I need to explicitly instruct Claude on which specific tools to call for various operations to achieve the intended outcome.

Am I doing something wrong?

  • roseway4 2 days ago

    I used Claude 3.7 Sonnet for the Cursor Agent when building the demo. Happy to hop on a call to walk through your experience, as I'm surprised the agent performed so poorly. daniel AT getzep.com

mellosouls 3 days ago

This looks interesting but somewhat complicated or not obvious how to get going in a classic "Show HN" style.

The requirement for an OpenAI key may also be a little off-putting, or at least, could do with some indication of realistic costs; most Cursor users will likely need a significant motivation to add to the subscription they already have.

Don't get me wrong, this could be a really worthwhile addition to the LLM coding toolset but I think it needs some work on the presentation as to how to get quickly up and running.

octernion 3 days ago

not obvious to me why this is an improvement of having the agent just update the rule files directly itself; i have it do that to my various AI-targeted readme files and it works great.

  • roseway4 3 days ago

    Graphiti MCP can recall more than just preferences and coding styles. Application specifications and evolution of these may be stored. For any non-trivial application, config files would likely be a misfit for this use ase.

    • octernion 3 days ago

      i store those in my rules files - really all the knowledge i would pass onto another engineer (incl. AI). not sure i follow why you would avoid putting that into AI-readable files in your repo like i do now.

bbertelsen 3 days ago

One of the big problems I have with cursor is that it ignores the rules frequently. For example, working in the front-end it will sometimes totally ignore all the components that I have explicitly told it to use. Would this... fix that?

  • eightysixfour 3 days ago

    This would help, but you can also use a more aggressive approach to cursor rules: https://ghuntley.com/stdlib/

    Using file pattern matching and automatic attachment makes it much, much more sticky in my experience.

    • kelleyperry 3 days ago

      I actually had Claude Desktop with the file system MCP write me out a pretty nice suite of rules directly in the .cursor/rules folder.

loujaybee 2 days ago

I don’t see how this is palatable by serious organizations? So you build this huge memory graph of preferences? But none of it is explicit? It’s all just magic? The attack vectors from a security angle seem insane. Also the absence of any explicitness in how you define standards seems completely not viable in a commercial context? I mean it’s crazy cool as a hobby project, but also seems not to have a serious commercial viability?

  • roseway4 2 days ago

    There are definitely potential security issues with memory for coding agents, which apply to not only Cursor but also Windsurf. Looking forward to more research in this area.

Garlef 3 days ago

It's there some way to control what gets updated in the database and how and when?

For example I'd like to be in control of the archtectural patterns and not let the LLM drive this.

  • Garlef 3 days ago

    Oh I see: I could define my own entities similar to what your did for your integration and then let the agents interact with them through the MCP?

    For example ("architecture pattern" - auch as the dependency rule from clean architecture, "development areas" such as frontend, backend)

stosssik 3 days ago

Looks super interesting. I hadn't heard of Graphiti before, but the idea of giving Cursor some kind of persistent, structured memory across sessions definitely sounds useful.