<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>local-mcp on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/local-mcp/</link>
    <description>Recent content in local-mcp on S Anand</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 17 May 2026 22:45:57 +0800</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/local-mcp/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>People skills with AI</title>
      <link>https://www.s-anand.net/blog/people-skills-with-ai/</link>
      <pubDate>Sun, 17 May 2026 22:45:57 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/people-skills-with-ai/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-05-17-iim-alumni-singapore-workshop-poster.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;I &lt;a href=&#34;https://www.s-anand.net/blog/ai-advice/&#34;&gt;advise&lt;/a&gt; people that people skills are important in the AI era.&lt;/p&gt;
&lt;p&gt;Now, I&amp;rsquo;m &lt;em&gt;using AI&lt;/em&gt; to help me with people skills.&lt;/p&gt;
&lt;p&gt;This morning, I &lt;a href=&#34;https://github.com/sanand0/scripts/blob/915c9e0b35a66e276d63f2fdaffd1af36ae77497/prompts/backupwhatsapp.md#write-bulk-scraper-17-may-2026&#34;&gt;wrote&lt;/a&gt; a &lt;a href=&#34;https://github.com/sanand0/scripts/blob/915c9e0b35a66e276d63f2fdaffd1af36ae77497/backupwhatsapp.py&#34;&gt;script&lt;/a&gt; to export my WhatsApp conversations this year. That makes it easy to feed it into AI models.&lt;/p&gt;
&lt;p&gt;Then I used my &lt;a href=&#34;https://www.s-anand.net/blog/how-i-use-local-mcp/&#34;&gt;Local MCP connector&lt;/a&gt; and asked Claude:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Who are people in my life that most deserve an unreasonable gesture of thanks and what would that be?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It went through my WhatsApp messages &amp;ndash; including threads I had &lt;em&gt;not&lt;/em&gt; read. Including a group discussing four 90-minute hands-on AI workshops I&amp;rsquo;m running for IIM alumni in Singapore on Saturday afternoons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;23 May: Context engineering&lt;/li&gt;
&lt;li&gt;20 Jun: AI tools &amp;amp; workflows&lt;/li&gt;
&lt;li&gt;25 Jul: Agentic analysis&lt;/li&gt;
&lt;li&gt;22 Aug: AI strategy&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/in/nayana-jain/&#34;&gt;Nayana Jain&lt;/a&gt; prepared a series of LinkedIn / WhatsApp posts to promote this workshop series and also created a poster for the workshops - and the best part of it was they were AI-generated. AI didn&amp;rsquo;t do a great job at the logo, so she asked for and got the &lt;a href=&#34;https://files.s-anand.net/images/2026-05-17-iimpact-logo.avif&#34;&gt;IIMPACT logo&lt;/a&gt; (which isn&amp;rsquo;t public) and fed it to the model to re-generate it.&lt;/p&gt;
&lt;p&gt;All of this is something I wasn&amp;rsquo;t even aware of until Claude pointed it out.&lt;/p&gt;
&lt;p&gt;I sent a note thanking her.&lt;/p&gt;
&lt;p&gt;And, evidently, AI is teaching me how to be human.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>How I use Local MCP</title>
      <link>https://www.s-anand.net/blog/how-i-use-local-mcp/</link>
      <pubDate>Sat, 16 May 2026 22:24:32 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/how-i-use-local-mcp/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-05-16-how-i-use-local-mcp.avif&#34;&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d love for Claude or ChatGPT to answer questions like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What meetings am I not setting up that I really should be?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Based on my activities since 9 May 2026, what should I blog about?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Who in my professional life most deserves an unreasonable gesture?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;From data. My files, emails, calendar, contacts, transcripts, blogs, notes, code, browsing history, logs, random Markdown files I forgot I wrote.&lt;/p&gt;
&lt;p&gt;Hence, a &lt;a href=&#34;https://modelcontextprotocol.io/&#34;&gt;Local MCP&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;My Local MCP server exposes one tool: &lt;code&gt;bash&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@mcp.tool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;bash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;commands&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ctx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Context&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Runs multiline bash script.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;commands&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;shell&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;executable&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/bin/bash&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stdout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&amp;rsquo;s it. No vector database. No UI. No custom connectors. No &amp;ldquo;AI knowledge platform.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Just: &lt;strong&gt;run shell commands on my machine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I run this locally, expose it online (which is slightly scary), and give Claude and ChatGPT this &lt;a href=&#34;https://www.s-anand.net/blog/prompts/fragments/#local-mcp&#34;&gt;prompt fragment&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Local MCP runs bash and exposes:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; ~/code/talks/README.md - talk transcripts, slides
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; ~/code/blog/description.md - 20K files, 5K posts. Search for &amp;#34;- llm&amp;#34; for AI-related posts.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;... (etc.)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;`gws`&lt;/span&gt; can access email, calendar, etc.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In one shot, this gives EVERYTHING I have to the agents.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;A common use is meeting prep.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You are a brilliant, brutally honest Chief of Staff. You have full access via Local MCP bash tool to calendar, emails, and past transcripts. Produce a briefing card for each substantive external meeting today.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It checks the calendar via &lt;code&gt;gws&lt;/code&gt;. It searches my transcripts. My notes. My &lt;a href=&#34;https://www.s-anand.net/blog/ai-advice/&#34;&gt;AI advice&lt;/a&gt;. Then gives me a briefing card with everything I need.&lt;/p&gt;
&lt;p&gt;I can&amp;rsquo;t do this by uploading files manually. The context is not one file: it&amp;rsquo;s scattered all over.&lt;/p&gt;
&lt;p&gt;A human assistant could do this. But agents are faster, cheaper, and I trust them more.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Another common use is relationship intelligence.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What meetings am I not setting up that I really should be?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Claude scans transcripts, contacts, emails, and recent activity to find people I should speak.&lt;/p&gt;
&lt;p&gt;This is where Local MCP is different from a file upload.&lt;/p&gt;
&lt;p&gt;In a file upload, I can ask &amp;ldquo;Where is X?&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Here, I&amp;rsquo;m asking &amp;ldquo;What am I missing?&amp;rdquo; and the answer depends on recency, relationship history, frequency, how conversations felt, unresolved actions, and so much more.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;A third use is mining my own work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I used Local MCP to ask what I should blog about. It scanned all my content and found themes I haven&amp;rsquo;t really thought about, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.s-anand.net/blog/google-meet-captions-local-transcript-recorder/&#34;&gt;Google Meet captions&lt;/a&gt; - a code commit I recently made. I wrote about it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sanand0.github.io/talks/2026-05-15-gramener-all-hands/&#34;&gt;Agents are the new software&lt;/a&gt; - a theme I&amp;rsquo;ve been talking a lot about. I wrote about it.&lt;/li&gt;
&lt;li&gt;Local MCPs - that&amp;rsquo;s this post&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;hellip; and half a dozen topics I should be writing about soon.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;A fourth use is business research.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have transcripts from sales calls and client conversations. I don&amp;rsquo;t attend all of them. But Local MCP can.&lt;/p&gt;
&lt;p&gt;I can ask:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which client needs have we heard repeatedly but not converted into demos?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Which solutions have we pitched to one client that another client has explicitly asked for?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is beyond a CRM search. A HubSpot search finds what people typed in. This finds what people actually said.&lt;/p&gt;
&lt;p&gt;Then an email search finds if they acted on it. Calendar search finds what we spent time on.&lt;/p&gt;
&lt;p&gt;Across these, I find opportunities that no single system has.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;BUT:&lt;/strong&gt; this is not safe by default. A bash MCP server can delete my files, run commands, read my browser sessions, send emails &lt;code&gt;gws&lt;/code&gt;, and all sorts of risky things.&lt;/p&gt;
&lt;p&gt;So I monitor the commands like a hawk, and give it fairly controlled access, and only when I&amp;rsquo;m actually running one of these use-cases.&lt;/p&gt;
&lt;p&gt;I tried OAuth but setting up Auth0, dynamic client registration, callback URLs, scopes, ChatGPT connector errors, &amp;hellip; I gave up.&lt;/p&gt;
&lt;p&gt;For now, supervised local usage gives me most of the value.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;BUT #2:&lt;/strong&gt; Claude and ChatGPT use Local MCP differently.&lt;/p&gt;
&lt;p&gt;Claude uses it beautifully. Smooth. No mistakes. References memory.&lt;/p&gt;
&lt;p&gt;ChatGPT is more restrictive. No chat memory accessed, nor saved. Keeps asking for permissions.&lt;/p&gt;
&lt;p&gt;So I use ChatGPT less for Local MCP-heavy tasks. But ChatGPT is rigorous. When I want structured analysis, exhaustive lists, or better verification discipline, it is useful.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Local MCP is powerful because it lets AI &lt;em&gt;use all systems I have access to&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;local files - across Dropbox, Google Drive, my notes, blog posts, transcripts, slides, &amp;hellip;&lt;/li&gt;
&lt;li&gt;code - not just reading, but running, rewriting, and generatig&lt;/li&gt;
&lt;li&gt;email, calendar, contacts&lt;/li&gt;
&lt;li&gt;browser history&lt;/li&gt;
&lt;li&gt;shell tools - which can be used to access even more system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Local MCP invites Claude / ChatGPT as a real assistant into my laptop.&lt;/p&gt;
&lt;p&gt;And into my 2,700-line TODO archive.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;You probably shouldn&amp;rsquo;t expose a bash tool to an AI. But note the direction I&amp;rsquo;m going with this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If your work and transactions are agent-readable, your past work compounds.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;If they are trapped in apps, screenshots, and memory, your AI has amnesia.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
  </channel>
</rss>
