<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Luís Monteiro</title>
    <description>The latest articles on DEV Community by Luís Monteiro (@lus_monteiro_7add28cdce6).</description>
    <link>https://dev.to/lus_monteiro_7add28cdce6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1835351%2F71b2867c-0b10-493a-9b91-54ae4f51459b.jpg</url>
      <title>DEV Community: Luís Monteiro</title>
      <link>https://dev.to/lus_monteiro_7add28cdce6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lus_monteiro_7add28cdce6"/>
    <language>en</language>
    <item>
      <title>CLAUDE.md is not enough: why I built a local-first memory MCP for Claude Code</title>
      <dc:creator>Luís Monteiro</dc:creator>
      <pubDate>Sun, 26 Apr 2026 21:34:14 +0000</pubDate>
      <link>https://dev.to/lus_monteiro_7add28cdce6/claudemd-is-not-enough-why-i-built-a-local-first-memory-mcp-for-claude-code-23hm</link>
      <guid>https://dev.to/lus_monteiro_7add28cdce6/claudemd-is-not-enough-why-i-built-a-local-first-memory-mcp-for-claude-code-23hm</guid>
      <description>&lt;p&gt;I use Claude Code a lot.&lt;/p&gt;

&lt;p&gt;One thing kept annoying me: not the mistakes, not the occasional wrong assumption, not even the weird confidence.&lt;/p&gt;

&lt;p&gt;The annoying part was having to re-explain the same project context in new sessions.&lt;/p&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;this module looks legacy but still supports a critical flow&lt;/li&gt;
&lt;li&gt;this query already caused performance issues&lt;/li&gt;
&lt;li&gt;this test failed before because the hook returned formatted text, not an array&lt;/li&gt;
&lt;li&gt;this architecture decision looks strange, but it exists for a reason&lt;/li&gt;
&lt;li&gt;this project separates bugs from improvements in release notes&lt;/li&gt;
&lt;li&gt;do not touch this config unless you understand the install flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of that belongs in &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But not all of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with putting everything in CLAUDE.md
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is great for stable project instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to run the project&lt;/li&gt;
&lt;li&gt;how to run tests&lt;/li&gt;
&lt;li&gt;coding conventions&lt;/li&gt;
&lt;li&gt;architecture guidelines&lt;/li&gt;
&lt;li&gt;commands the agent should know&lt;/li&gt;
&lt;li&gt;repo-specific workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That kind of context is stable and broadly useful.&lt;/p&gt;

&lt;p&gt;The problem starts when &lt;code&gt;CLAUDE.md&lt;/code&gt; becomes the place for every pitfall, debugging note, warning, workaround, decision, and preference.&lt;/p&gt;

&lt;p&gt;At that point, it stops being onboarding context and becomes a giant context dump.&lt;/p&gt;

&lt;p&gt;That creates two problems.&lt;/p&gt;

&lt;p&gt;First, every new session pays for it in tokens, even when the current task only needs one small detail.&lt;/p&gt;

&lt;p&gt;Second, the more context you throw in, the easier it is for the important bit to get ignored.&lt;/p&gt;

&lt;p&gt;More context is not always better context.&lt;/p&gt;

&lt;p&gt;Sometimes it is just a bigger haystack with the same needle inside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The split that made more sense to me
&lt;/h2&gt;

&lt;p&gt;I started thinking about project context as two different things:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CLAUDE.md = stable onboarding instructions
working memory = retrieved project-specific notes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; should explain how the project works.&lt;/p&gt;

&lt;p&gt;Working memory should remember what happened while working on the project.&lt;/p&gt;

&lt;p&gt;That includes things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;decisions&lt;/li&gt;
&lt;li&gt;facts&lt;/li&gt;
&lt;li&gt;patterns&lt;/li&gt;
&lt;li&gt;pitfalls&lt;/li&gt;
&lt;li&gt;architecture notes&lt;/li&gt;
&lt;li&gt;project preferences&lt;/li&gt;
&lt;li&gt;session summaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key difference is that working memory should not be dumped into every prompt.&lt;/p&gt;

&lt;p&gt;It should be searched, ranked, and injected only when relevant.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I built Memento MCP
&lt;/h2&gt;

&lt;p&gt;Memento MCP is a local-first MCP server that gives Claude Code and other stdio-MCP clients persistent project memory.&lt;/p&gt;

&lt;p&gt;The basic idea is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Store useful project knowledge as typed memories.&lt;/li&gt;
&lt;li&gt;Search and rank memories for the current task.&lt;/li&gt;
&lt;li&gt;Inject only the relevant memory into the agent.&lt;/li&gt;
&lt;li&gt;Avoid turning every new session into a giant repeated context paste.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Default setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;local SQLite&lt;/li&gt;
&lt;li&gt;FTS5 search&lt;/li&gt;
&lt;li&gt;no mandatory cloud account&lt;/li&gt;
&lt;li&gt;no hosted vector DB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;optional embeddings&lt;/li&gt;
&lt;li&gt;team memory sync through git&lt;/li&gt;
&lt;li&gt;Obsidian vault indexing&lt;/li&gt;
&lt;li&gt;privacy controls&lt;/li&gt;
&lt;li&gt;local web inspector&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;Instead of adding this to &lt;code&gt;CLAUDE.md&lt;/code&gt; forever:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The scheduling module looks legacy but still supports a critical production flow.
Do not rewrite it casually.
The pagination query caused performance issues before.
The release notes must separate bugs from improvements.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those notes can live as typed memories.&lt;/p&gt;

&lt;p&gt;Then, when the agent is working on the scheduling module or release notes, the relevant memory is retrieved.&lt;/p&gt;

&lt;p&gt;When the agent is working on something unrelated, that context stays out of the prompt.&lt;/p&gt;

&lt;p&gt;That is the part I care about most: reducing repeated context without losing important project knowledge.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/lfrmonteiro99/memento-mcp" rel="noopener noreferrer"&gt;https://github.com/lfrmonteiro99/memento-mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Docs:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lfrmonteiro99.github.io/memento-mcp" rel="noopener noreferrer"&gt;https://lfrmonteiro99.github.io/memento-mcp&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I want feedback on
&lt;/h2&gt;

&lt;p&gt;I am mainly trying to validate the workflow.&lt;/p&gt;

&lt;p&gt;The questions I care about:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does the &lt;code&gt;CLAUDE.md&lt;/code&gt; vs working memory split make sense?&lt;/li&gt;
&lt;li&gt;Would you trust an MCP server to inject memory into Claude Code?&lt;/li&gt;
&lt;li&gt;What kind of project memory would you actually want an agent to remember?&lt;/li&gt;
&lt;li&gt;What would make this annoying, unsafe, or too noisy?&lt;/li&gt;
&lt;li&gt;Should memory be mostly explicit/manual, or should the agent be allowed to suggest memories automatically?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I built this because I got tired of re-explaining the same project context over and over again.&lt;/p&gt;

&lt;p&gt;Not because agents need more magic.&lt;/p&gt;

&lt;p&gt;They mostly need better memory, fewer repeated instructions, and less context shoved into every prompt like we are packing for the apocalypse.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>claude</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Decoding Digital Privacy: Your Guide to Staying Safe Online in Portugal</title>
      <dc:creator>Luís Monteiro</dc:creator>
      <pubDate>Fri, 28 Mar 2025 17:39:53 +0000</pubDate>
      <link>https://dev.to/lus_monteiro_7add28cdce6/decoding-digital-privacy-your-guide-to-staying-safe-online-in-portugal-3eng</link>
      <guid>https://dev.to/lus_monteiro_7add28cdce6/decoding-digital-privacy-your-guide-to-staying-safe-online-in-portugal-3eng</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check here:&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://lpmonteiro.pt/blog/-OMID_PfzL4wr8H8zhOD" rel="noopener noreferrer"&gt;https://lpmonteiro.pt/blog/-OMID_PfzL4wr8H8zhOD&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In today's hyper-connected world, our digital footprint expands with every click, search, and social media post. Ensuring your online privacy is paramount, and understanding your rights and available tools is crucial. This guide offers practical advice and insights into safeguarding your digital privacy in Portugal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding Portugal's Data Protection Laws&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Portugal adheres to the General Data Protection Regulation (GDPR) of the European Union, providing robust protection for your personal data. This regulation grants you significant rights, including:&lt;/p&gt;

&lt;p&gt;The Right to Access: You can request access to the personal data held about you by organizations.&lt;br&gt;
The Right to Rectification: You can correct inaccuracies in your personal data.&lt;br&gt;
The Right to Erasure ('Right to be Forgotten'): You can request the deletion of your personal data under certain circumstances.&lt;br&gt;
The Right to Restrict Processing: You can limit how organizations use your personal data.&lt;br&gt;
The Right to Data Portability: You can obtain your personal data in a structured, commonly used, and machine-readable format.&lt;br&gt;
The Right to Object: You can object to the processing of your personal data for specific purposes, such as direct marketing.&lt;br&gt;
The Comissão Nacional de Proteção de Dados (CNPD) is the Portuguese data protection authority responsible for enforcing GDPR. If you believe your rights have been violated, you can file a complaint with the CNPD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Tips for Enhancing Your Online Privacy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beyond legal frameworks, proactive measures are essential for protecting your digital footprint:&lt;/p&gt;

&lt;p&gt;Use Strong, Unique Passwords: Avoid easily guessable passwords and reuse the same password across multiple accounts. A password manager can help you generate and store complex passwords securely.&lt;br&gt;
Enable Two-Factor Authentication (2FA): 2FA adds an extra layer of security by requiring a second verification method, such as a code sent to your phone, in addition to your password.&lt;br&gt;
Review Privacy Settings: Regularly review and adjust the privacy settings on your social media accounts, search engines, and other online services. Limit the information you share publicly and control who can see your posts.&lt;br&gt;
Be Mindful of What You Share Online: Think before you post! Information shared online can be difficult to remove and may be used against you in the future.&lt;br&gt;
Use a Virtual Private Network (VPN): A VPN encrypts your internet traffic and masks your IP address, protecting your online activity from prying eyes, especially when using public Wi-Fi.&lt;br&gt;
Keep Your Software Up-to-Date: Software updates often include security patches that address vulnerabilities exploited by hackers.&lt;br&gt;
Be Wary of Phishing Scams: Be cautious of suspicious emails, messages, or websites that ask for your personal information. Never click on links or open attachments from unknown sources.&lt;br&gt;
Use Privacy-Focused Browsers and Search Engines: Consider using browsers like Brave or Firefox Focus, and search engines like DuckDuckGo, which prioritize user privacy.&lt;br&gt;
Regularly Clear Your Browsing History and Cookies: This helps prevent websites from tracking your online activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources for Further Information&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For more in-depth information and resources, consider exploring the following:&lt;/p&gt;

&lt;p&gt;Comissão Nacional de Proteção de Dados (CNPD): The official website of the Portuguese data protection authority.&lt;br&gt;
European Data Protection Board (EDPB): Provides guidance and information on GDPR.&lt;br&gt;
Privacy International: An organization that promotes and defends privacy worldwide.&lt;br&gt;
Protecting your digital privacy is an ongoing process that requires vigilance and a proactive approach. By understanding your rights, implementing practical security measures, and staying informed about the latest threats, you can effectively safeguard your personal data and maintain control over your digital footprint in Portugal and beyond.&lt;/p&gt;

</description>
      <category>digital</category>
      <category>privacy</category>
      <category>portugal</category>
      <category>cybersecurity</category>
    </item>
  </channel>
</rss>
