<?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: member_26847952</title>
    <description>The latest articles on DEV Community by member_26847952 (@himanshu_748).</description>
    <link>https://dev.to/himanshu_748</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%2F3226847%2F8b999f0b-76e8-4a5b-a87d-449ab82832bc.png</url>
      <title>DEV Community: member_26847952</title>
      <link>https://dev.to/himanshu_748</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshu_748"/>
    <language>en</language>
    <item>
      <title>Stop Writing API Docs by Hand — Let Notion MCP Do It</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Fri, 27 Mar 2026 17:50:57 +0000</pubDate>
      <link>https://dev.to/himanshu_748/stop-writing-api-docs-by-hand-let-notion-mcp-do-it-39h3</link>
      <guid>https://dev.to/himanshu_748/stop-writing-api-docs-by-hand-let-notion-mcp-do-it-39h3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;APIVault&lt;/strong&gt; — a local FastAPI app that turns raw route code or plain-English API descriptions into full API documentation, then stores everything in Notion through the Notion MCP.&lt;/p&gt;

&lt;p&gt;The idea is simple: you point APIVault at a router file (or just describe an endpoint in plain English), and it generates structured documentation and pushes it directly into a Notion workspace it sets up for you — no copy-pasting, no manual page creation.&lt;/p&gt;

&lt;p&gt;The frontend is a vanilla HTML/CSS/JS dashboard with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live search&lt;/strong&gt; across your documented endpoints&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation preview&lt;/strong&gt; pane&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source vs. generated toggle&lt;/strong&gt; so you can diff your raw code against what was documented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's also a CLI tool (&lt;code&gt;vault.py&lt;/code&gt;) for batch-documenting entire files without opening the UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Endpoints
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/setup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates (or reuses) the APIVault Notion workspace — an &lt;code&gt;📖 API Reference&lt;/code&gt; database, a &lt;code&gt;🏷️ Services&lt;/code&gt; database, and an &lt;code&gt;📚 API Docs&lt;/code&gt; hub page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/document-endpoint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documents a single endpoint, writes it to Notion, returns the generated content + the Notion page URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/document-collection&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Splits a router/controller file into individual endpoints and documents them in parallel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/generate-readme&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Generates a &lt;code&gt;📄 [Service] — README&lt;/code&gt; Notion page from endpoints already stored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET /api/search?q=&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Powers the dashboard's live search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET /api/sidebar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Feeds the left-side navigation tree&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI + Python&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; HuggingFace Inference API (documentation generation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP:&lt;/strong&gt; Notion MCP via &lt;code&gt;https://mcp.notion.com/sse&lt;/code&gt; (SSE transport)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla HTML/CSS/JS&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;No video for this submission.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Show us the code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/himanshu748/dev-challenge-5" rel="noopener noreferrer"&gt;github.com/himanshu748/dev-challenge-5&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started locally
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone and set up&lt;/span&gt;
git clone https://github.com/himanshu748/dev-challenge-5
&lt;span class="nb"&gt;cd &lt;/span&gt;dev-challenge-5
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# 2. Configure environment&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Set NOTION_TOKEN (MCP OAuth token) and HF_TOKEN&lt;/span&gt;

&lt;span class="c"&gt;# 3. Run&lt;/span&gt;
uvicorn app.main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;span class="c"&gt;# Open http://127.0.0.1:8000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CLI usage for bulk documentation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python vault.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--file&lt;/span&gt; routes/users.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--service&lt;/span&gt; UserService &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--base-url&lt;/span&gt; https://api.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;APIVault uses the &lt;strong&gt;Notion MCP exclusively&lt;/strong&gt; — there are zero calls to the direct Notion REST API anywhere in the codebase. &lt;code&gt;NOTION_TOKEN&lt;/code&gt; must be a Notion MCP OAuth access token, not a Notion integration secret. This matches how the hosted MCP is meant to be used: access is granted through the MCP OAuth flow, not the legacy secret model.&lt;/p&gt;

&lt;p&gt;On startup, &lt;code&gt;POST /api/setup&lt;/code&gt; calls the Notion MCP to provision the entire workspace structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;&lt;code&gt;📖 API Reference&lt;/code&gt;&lt;/strong&gt; database where each endpoint lives as a page with properties like method, path, service, parameters, and response schema&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;&lt;code&gt;🏷️ Services&lt;/code&gt;&lt;/strong&gt; database for grouping endpoints by service name&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;&lt;code&gt;📚 API Docs&lt;/code&gt;&lt;/strong&gt; hub page that ties everything together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When an endpoint is documented (either individually or from a batch file), the generated content is written to a new Notion page via the MCP and the returned Notion URL is surfaced in the dashboard so you can jump straight to it.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;generate-readme&lt;/code&gt; flow goes the other way: it queries Notion through the MCP to pull all endpoints for a given service, then synthesizes them into a formatted README page — so Notion stays the source of truth for the whole workflow.&lt;/p&gt;

&lt;p&gt;A local JSON cache (&lt;code&gt;data/apivault_state.json&lt;/code&gt;) exists purely for UI responsiveness (fast sidebar loads, instant search), but every write and authoritative read goes through the MCP.&lt;/p&gt;

&lt;p&gt;What the Notion MCP unlocks here that wouldn't be practical otherwise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured storage without schema management&lt;/strong&gt; — Notion databases give you typed properties (selects, rich text, URLs) without standing up a real database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-readable side effect&lt;/strong&gt; — every documented endpoint is immediately browsable in Notion by the whole team, not just queryable via API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;README generation from live data&lt;/strong&gt; — because the MCP lets you query what's already stored, the README reflects the actual current state of your docs, not a stale snapshot&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>Your Team's Code Reviews Are Disappearing — I Built PRReviewIQ to Fix That</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Fri, 27 Mar 2026 17:36:51 +0000</pubDate>
      <link>https://dev.to/himanshu_748/your-teams-code-reviews-are-disappearing-i-built-prreviewiq-to-fix-that-20p4</link>
      <guid>https://dev.to/himanshu_748/your-teams-code-reviews-are-disappearing-i-built-prreviewiq-to-fix-that-20p4</guid>
      <description>&lt;p&gt;Every code review your team does contains hard-won knowledge: a bug pattern caught, a performance trap avoided, a naming convention enforced. And almost all of it evaporates the moment the PR is merged.&lt;/p&gt;

&lt;p&gt;PRReviewIQ is my attempt to fix that. It's an AI code review tool that doesn't just comment on diffs — it &lt;strong&gt;remembers&lt;/strong&gt;. Every insight gets logged into a living Notion knowledge base via Notion MCP, so your team's collective code quality wisdom compounds instead of getting buried in closed PRs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/9k0y8xSYyFg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Us the Code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/himanshu748/dev-challenge-4" rel="noopener noreferrer"&gt;github.com/himanshu748/dev-challenge-4&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Worth Solving
&lt;/h2&gt;

&lt;p&gt;Code review is one of the highest-leverage activities on any engineering team — but it's almost entirely ephemeral. Comments live on GitHub. Patterns go untracked. New teammates repeat the same mistakes. There's no institutional memory.&lt;/p&gt;

&lt;p&gt;I wanted Notion to be that memory. Not as a place to manually paste notes, but as a database that an AI agent actively writes to as part of the review process itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;PRReviewIQ ships as two interfaces over the same core:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web app&lt;/strong&gt; — a FastAPI server at &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt; where you can paste diffs and trigger reviews through a browser UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CLI&lt;/strong&gt; — run it directly against a local git repo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python review.py &lt;span class="nt"&gt;--repo&lt;/span&gt; /path/to/repo

&lt;span class="c"&gt;# Or target a single file for pre-commit checks&lt;/span&gt;
python review.py &lt;span class="nt"&gt;--file&lt;/span&gt; path/to/file.py &lt;span class="nt"&gt;--pr-title&lt;/span&gt; &lt;span class="s2"&gt;"Pre-commit review"&lt;/span&gt; &lt;span class="nt"&gt;--repo-name&lt;/span&gt; my-repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Under the hood, every review goes through HuggingFace, and every finding gets written into Notion through MCP.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;Here's the part I'm most proud of from an architecture standpoint.&lt;/p&gt;

&lt;p&gt;Most Notion integrations make direct REST calls. I went a different route: PRReviewIQ runs the &lt;strong&gt;official &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt;&lt;/strong&gt; locally via &lt;code&gt;npx&lt;/code&gt;, and passes &lt;code&gt;NOTION_TOKEN&lt;/code&gt; directly to the MCP process. The app itself never touches the Notion REST API — all writes happen through MCP.&lt;/p&gt;

&lt;p&gt;This matters because it means the LLM is using Notion as a &lt;strong&gt;tool&lt;/strong&gt;, not just a destination. When it reviews a diff, it decides what's worth logging, how to categorize it, and where it belongs in the knowledge base — the same way a human reviewer would decide what's worth writing down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What gets built in Notion:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;coding standards database&lt;/strong&gt; that evolves as the agent identifies recurring patterns. You can query it live via &lt;code&gt;GET /api/standards&lt;/code&gt; — it reads directly from Notion and returns JSON, so the app and the team always share the same source of truth.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;reviews log&lt;/strong&gt; — every PR review stored as a structured Notion entry, searchable and linkable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weekly digest pages&lt;/strong&gt; — &lt;code&gt;POST /api/weekly-digest&lt;/code&gt; aggregates trends across recent reviews and writes a summary page your team can async through on Mondays.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The compounding effect is the real value: the knowledge base gets more useful the more you use it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Note on the MCP Setup
&lt;/h2&gt;

&lt;p&gt;Running &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt; via &lt;code&gt;npx&lt;/code&gt; means Node.js needs to be installed alongside Python. The MCP server process is spawned by the app at runtime — no separate setup step required beyond having &lt;code&gt;npx&lt;/code&gt; available.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Prerequisites&lt;/span&gt;
python 3.11+
node + npx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# .env&lt;/span&gt;
&lt;span class="nv"&gt;HF_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;hf_...
&lt;span class="nv"&gt;NOTION_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;...
&lt;span class="nv"&gt;NOTION_PARENT_PAGE_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Run&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
uvicorn app.main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first call to &lt;code&gt;POST /api/setup&lt;/code&gt; provisions the full Notion workspace structure — databases, log pages, and the standards section — and you're ready to start reviewing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd Build Next
&lt;/h2&gt;

&lt;p&gt;The CLI is useful but I want to wire it into a git pre-commit hook so reviews happen automatically before every push. The Notion knowledge base is already there — the next step is making the feedback loop tighter.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>From Job Post to Offer Letter — Automated with Notion MCP</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Fri, 27 Mar 2026 16:11:42 +0000</pubDate>
      <link>https://dev.to/himanshu_748/from-job-post-to-offer-letter-automated-with-notion-mcp-cgp</link>
      <guid>https://dev.to/himanshu_748/from-job-post-to-offer-letter-automated-with-notion-mcp-cgp</guid>
      <description>&lt;h1&gt;
  
  
  How I Used Notion MCP to Build an AI Recruiting Assistant
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HireIQ&lt;/strong&gt; is an AI-powered recruiting assistant that uses Notion as its entire operational backbone. Point it at a role you're hiring for and it will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spin up a &lt;strong&gt;recruiting workspace&lt;/strong&gt; in Notion automatically&lt;/li&gt;
&lt;li&gt;Write polished, structured &lt;strong&gt;job descriptions&lt;/strong&gt; and save them as Notion pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen candidates&lt;/strong&gt; against the role criteria and log results&lt;/li&gt;
&lt;li&gt;Generate &lt;strong&gt;offer letters&lt;/strong&gt; — drafted by AI, stored in Notion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire hiring pipeline lives in Notion. HireIQ just drives it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/lFWmnuWcQ3M"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Us the Code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/himanshu748/dev-challenge-3" rel="noopener noreferrer"&gt;github.com/himanshu748/dev-challenge-3&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;HireIQ connects to Notion via the &lt;strong&gt;remote Notion MCP server&lt;/strong&gt; at &lt;code&gt;https://mcp.notion.com/sse&lt;/code&gt; — attached directly to a HuggingFace &lt;code&gt;MCPClient&lt;/code&gt;. This means the AI model doesn't just answer questions about hiring; it actively reads from and writes to Notion as part of every step in the pipeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Workspace Setup (&lt;code&gt;POST /api/setup&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;On first run, HireIQ uses Notion MCP to create the full recruiting workspace structure — databases, pages, and sections — ready to receive jobs and candidates. Zero manual Notion configuration needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Job Description Creation (&lt;code&gt;POST /api/add-job&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;The AI generates a complete, professionally formatted job description and writes it directly into Notion via MCP. Every role gets its own page, making the workspace a living hiring hub rather than a static document.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Candidate Screening (&lt;code&gt;POST /api/screen-candidate&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;HireIQ reads the job requirements from Notion, evaluates the candidate against them using the LLM, and logs the screening result back into Notion — keeping everything in one place for the hiring team to review.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Offer Letter Generation (&lt;code&gt;POST /api/generate-offer&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;Once a candidate clears screening, HireIQ drafts a tailored offer letter and saves it to Notion via MCP. The whole candidate journey — from application to offer — is tracked in one workspace.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Notion MCP Unlocks
&lt;/h3&gt;

&lt;p&gt;The remote MCP connection (&lt;code&gt;https://mcp.notion.com/sse&lt;/code&gt;) is what makes this work at a different level than a plain Notion API integration. The LLM has Notion MCP as an attached tool — so it can decide &lt;em&gt;when&lt;/em&gt; and &lt;em&gt;how&lt;/em&gt; to read or write Notion data as part of reasoning through each task. It's not just API calls wrapped in Python; the model is an active agent that uses Notion as its memory and output layer.&lt;/p&gt;

&lt;p&gt;Every write endpoint returns a &lt;code&gt;notion_urls&lt;/code&gt; field so the frontend can link directly to the pages the agent just created.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;FastAPI + Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI / LLM&lt;/td&gt;
&lt;td&gt;HuggingFace (&lt;code&gt;Qwen/Qwen2.5-72B-Instruct&lt;/code&gt;) via MCPClient&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data store&lt;/td&gt;
&lt;td&gt;Notion (via remote Notion MCP at &lt;code&gt;https://mcp.notion.com/sse&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Vanilla HTML/CSS/JS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repo&lt;/span&gt;
git clone https://github.com/himanshu748/dev-challenge-3

&lt;span class="c"&gt;# 2. Create a virtual environment&lt;/span&gt;
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate

&lt;span class="c"&gt;# 3. Install dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# 4. Configure environment variables&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a &lt;code&gt;.env&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;HF_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;hf_...
&lt;span class="nv"&gt;NOTION_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;...          &lt;span class="c"&gt;# Must be a current OAuth access token (not an internal integration token)&lt;/span&gt;
&lt;span class="nv"&gt;NOTION_PARENT_PAGE_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;... &lt;span class="c"&gt;# Parent page for the recruiting workspace&lt;/span&gt;
&lt;span class="nv"&gt;HF_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;...              &lt;span class="c"&gt;# Optional — defaults to Qwen/Qwen2.5-72B-Instruct&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 5. Start the server&lt;/span&gt;
uvicorn app.main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt; in your browser.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;NOTION_TOKEN&lt;/code&gt; must be a current OAuth access token for the remote Notion MCP server. A plain internal integration token will not work for the &lt;code&gt;https://mcp.notion.com/sse&lt;/code&gt; connection.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>How I Used Notion MCP to Build an Autonomous Personal Finance Tracker</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Thu, 26 Mar 2026 16:41:46 +0000</pubDate>
      <link>https://dev.to/himanshu_748/how-i-used-notion-mcp-to-build-an-autonomous-personal-finance-tracker-12jl</link>
      <guid>https://dev.to/himanshu_748/how-i-used-notion-mcp-to-build-an-autonomous-personal-finance-tracker-12jl</guid>
      <description>&lt;h1&gt;
  
  
  FinanceIQ — AI-Powered Finance Tracker Built with Notion MCP
&lt;/h1&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FinanceIQ&lt;/strong&gt; is an AI-powered personal finance tracker that turns Notion into a fully automated financial command center. It ingests your bank's CSV exports, categorizes every transaction using AI, detects suspicious or anomalous spending, generates monthly financial reports, and fires budget alerts — all written directly into Notion via the Notion MCP.&lt;/p&gt;

&lt;p&gt;No spreadsheet juggling. No manual tagging. Your finances, organized and analyzed — living right inside Notion.&lt;/p&gt;




&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/LigtevQIVxQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Show Us the Code
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/himanshu748/dev-challenge-2" rel="noopener noreferrer"&gt;github.com/himanshu748/dev-challenge-2&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;Notion MCP is the backbone of FinanceIQ. Rather than building a standalone dashboard that lives in isolation, I wanted all financial data to live &lt;em&gt;natively in Notion&lt;/em&gt; — so it's searchable, shareable, and editable like any other Notion page.&lt;/p&gt;

&lt;p&gt;Here's exactly how Notion MCP powers each part of the workflow:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. One-Click Workspace Setup
&lt;/h3&gt;

&lt;p&gt;On first run, FinanceIQ uses Notion MCP to automatically create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;Expenses database&lt;/strong&gt; with the right properties (date, amount, category, anomaly flag, etc.)&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Reports page&lt;/strong&gt; where monthly summaries will be written&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No manual Notion setup required — the agent handles it entirely through MCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Transaction Import &amp;amp; AI Categorization
&lt;/h3&gt;

&lt;p&gt;When a user uploads a CSV (from Chase, Bank of America, Wells Fargo, or Mint), FinanceIQ:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parses each transaction&lt;/li&gt;
&lt;li&gt;Sends it to a &lt;strong&gt;HuggingFace-hosted Mistral model&lt;/strong&gt; (via &lt;code&gt;MCPClient&lt;/code&gt;) for categorization into 10 spending categories&lt;/li&gt;
&lt;li&gt;Flags anomalies: transactions that are 3x the category average, duplicates, or suspiciously round amounts&lt;/li&gt;
&lt;li&gt;Writes each transaction as a new row in the Notion Expenses database via MCP&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Monthly Report Generation
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;/report&lt;/code&gt; endpoint aggregates data from Notion, runs it through the AI, and writes a structured monthly report page back into Notion including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Income vs. expenses summary&lt;/li&gt;
&lt;li&gt;Category-by-category breakdown&lt;/li&gt;
&lt;li&gt;AI-generated spending recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Budget Alerts
&lt;/h3&gt;

&lt;p&gt;Users can set monthly budget limits per category. FinanceIQ compares actuals against limits and — when thresholds are exceeded — creates a dedicated &lt;strong&gt;Budget Alert page&lt;/strong&gt; in Notion via MCP with details on which categories overspent and by how much.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Notion MCP Unlocks
&lt;/h3&gt;

&lt;p&gt;The key insight: Notion MCP lets an AI agent treat Notion as a &lt;strong&gt;live, writable database&lt;/strong&gt; — not just a document viewer. That means FinanceIQ can autonomously create structure, push data, and generate reports without any manual copy-pasting. The financial intelligence stays inside Notion where users already live and work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;FastAPI + Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI / LLM&lt;/td&gt;
&lt;td&gt;HuggingFace (Mistral-Small-3.1-24B) via MCPClient&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data store&lt;/td&gt;
&lt;td&gt;Notion (via Notion MCP)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Vanilla HTML/CSS/JS — newspaper-inspired design&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone the repo&lt;/span&gt;
git clone https://github.com/himanshu748/dev-challenge-2

&lt;span class="c"&gt;# 2. Install dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# 3. Configure environment variables&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Add your HF_API_KEY and NOTION_TOKEN&lt;/span&gt;

&lt;span class="c"&gt;# 4. Start the server&lt;/span&gt;
uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open &lt;code&gt;http://localhost:8000&lt;/code&gt; in your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Required environment variables:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HF_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your HuggingFace API key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NOTION_TOKEN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your Notion integration token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NOTION_PARENT_PAGE_ID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Parent page ID for the workspace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HF_MODEL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Defaults to &lt;code&gt;mistralai/Mistral-Small-3.1-24B-Instruct-2503&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>notionchallenge</category>
      <category>ai</category>
      <category>mcp</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>I Built an AI PM That Creates PRDs &amp; Sprint Plans Directly in Notion</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Thu, 26 Mar 2026 15:44:10 +0000</pubDate>
      <link>https://dev.to/himanshu_748/i-built-an-ai-pm-that-creates-prds-sprint-plans-directly-in-notion-21de</link>
      <guid>https://dev.to/himanshu_748/i-built-an-ai-pm-that-creates-prds-sprint-plans-directly-in-notion-21de</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AutoPM&lt;/strong&gt; is an AI-powered product management assistant that turns a single product idea &lt;br&gt;
into a fully structured Notion workspace — PRDs, task breakdowns, daily standups, and &lt;br&gt;
sprint plans — in seconds.&lt;/p&gt;

&lt;p&gt;No more context-switching between AI tools and your Notion workspace. Just describe your &lt;br&gt;
product idea, and AutoPM:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generates a full PRD&lt;/strong&gt; — problem statement, goals, user personas, user stories, and out-of-scope items&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Breaks it into Epics &amp;amp; Tasks&lt;/strong&gt; — with priorities, story points, and a ready-to-go Sprint 1 plan (~20 story points)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writes everything directly to Notion&lt;/strong&gt; via Notion MCP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reads your workspace&lt;/strong&gt; via MCP to generate context-aware daily standups and sprint plans from your real backlog&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://autopm-two.vercel.app" rel="noopener noreferrer"&gt;autopm-two.vercel.app&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/himanshu748/dev-challenge-1" rel="noopener noreferrer"&gt;github.com/himanshu748/dev-challenge-1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoysz9yllwtisl7wquwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoysz9yllwtisl7wquwi.png" alt="AutoPM Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/YMosgBmzr7k"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Show us the code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/himanshu748" rel="noopener noreferrer"&gt;
        himanshu748
      &lt;/a&gt; / &lt;a href="https://github.com/himanshu748/dev-challenge-1" rel="noopener noreferrer"&gt;
        dev-challenge-1
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;AutoPM — AI Product Manager&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;AI-powered product management assistant that creates PRDs, task breakdowns, standups, and sprint plans directly in Notion — built with &lt;strong&gt;HuggingFace Inference API&lt;/strong&gt; + &lt;strong&gt;Notion MCP&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/notion-2026-03-04" rel="nofollow"&gt;dev.to Notion MCP Challenge&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://autopm-two.vercel.app" rel="nofollow noopener noreferrer"&gt;autopm-two.vercel.app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/himanshu748/dev-challenge-1/./screenshots/dashboard.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fhimanshu748%2Fdev-challenge-1%2F.%2Fscreenshots%2Fdashboard.png" alt="Dashboard Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What It Does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Enter a product idea and AutoPM:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generates a full PRD&lt;/strong&gt; via HuggingFace AI (problem, goals, personas, user stories, scope)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creates an Epics &amp;amp; Tasks breakdown&lt;/strong&gt; with priorities and story points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writes everything to Notion&lt;/strong&gt; via Notion MCP (stdio transport)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reads your workspace&lt;/strong&gt; via MCP to generate context-aware standups and sprint plans&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How I Used Notion MCP&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;AutoPM uses &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt; via &lt;strong&gt;stdio transport&lt;/strong&gt; for ALL Notion operations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reads&lt;/strong&gt; — &lt;code&gt;API-post-search&lt;/code&gt; to scan workspace pages, &lt;code&gt;API-get-block-children&lt;/code&gt; to read task data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writes&lt;/strong&gt; — &lt;code&gt;API-post-page&lt;/code&gt; to create PRD pages, task breakdowns, standup reports, sprint plans&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth check&lt;/strong&gt; — &lt;code&gt;API-get-self&lt;/code&gt; to verify MCP connectivity on health check&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The MCP server…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/himanshu748/dev-challenge-1" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Used Notion MCP
&lt;/h2&gt;

&lt;p&gt;Notion MCP is the backbone of AutoPM — every single Notion interaction goes through it, &lt;br&gt;
zero direct REST calls.&lt;/p&gt;

&lt;p&gt;I spin up &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt; as a &lt;strong&gt;stdio child process per request&lt;/strong&gt;, managed &lt;br&gt;
by the Python &lt;code&gt;mcp&lt;/code&gt; SDK's &lt;code&gt;ClientSession&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ClientSession&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;StdioServerParameters&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mcp.client.stdio&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;stdio_client&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;stdio_client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;StdioServerParameters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;npx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-y&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;@notionhq/notion-mcp-server&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;NOTION_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="nf"&gt;as &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nc"&gt;ClientSession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;API-post-page&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{...})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  MCP tools used
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-get-self&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Health check — verify MCP connectivity on startup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-post-search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scan workspace for existing pages before generating standups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-get-block-children&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read task data from Notion for context-aware generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;API-post-page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create PRD pages, task breakdowns, standup reports, sprint plans&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  What Notion MCP actually unlocks
&lt;/h3&gt;

&lt;p&gt;Without MCP, AutoPM would be a one-way pipe — generate content, dump it somewhere. &lt;br&gt;
With MCP, it becomes &lt;strong&gt;bidirectional&lt;/strong&gt;: it &lt;em&gt;reads&lt;/em&gt; your existing workspace state before &lt;br&gt;
generating anything. The standup and sprint planner aren't making things up — they're &lt;br&gt;
grounded in your actual Notion data. That's the real unlock.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────┐     ┌──────────────────────┐     ┌──────────────────────┐
│  Browser (UI)   │────▶│  FastAPI Backend      │────▶│  Notion MCP Server   │
│  Vanilla HTML   │     │  (Python)             │     │  (stdio transport)   │
└─────────────────┘     └────────┬─────────────┘     │  npx @notionhq/      │
                                 │                    │  notion-mcp-server   │
                                 ▼                    └──────────┬───────────┘
                        ┌──────────────────┐                    │
                        │  HuggingFace     │                    ▼
                        │  Inference API   │           ┌─────────────────┐
                        │  (Qwen 72B)      │           │  Notion API     │
                        └──────────────────┘           └─────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Flow:&lt;/strong&gt; HuggingFace (Qwen 2.5 72B) generates structured PM content → FastAPI formats &lt;br&gt;
Notion blocks → MCP writes/reads Notion workspace&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; FastAPI (Python)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; HuggingFace Inference API — &lt;code&gt;Qwen/Qwen2.5-72B-Instruct&lt;/code&gt; (free tier!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notion:&lt;/strong&gt; &lt;code&gt;@notionhq/notion-mcp-server&lt;/code&gt; via stdio transport&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP SDK:&lt;/strong&gt; Python &lt;code&gt;mcp&lt;/code&gt; package — &lt;code&gt;ClientSession&lt;/code&gt; + &lt;code&gt;StdioServerParameters&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla HTML/CSS/JS, glassmorphism dark theme&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployed on:&lt;/strong&gt; Vercel&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>Just completed AWS AI &amp; ML challenge.</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Mon, 21 Jul 2025 19:21:27 +0000</pubDate>
      <link>https://dev.to/himanshu_748/just-completed-aws-ai-ml-challenge-3064</link>
      <guid>https://dev.to/himanshu_748/just-completed-aws-ai-ml-challenge-3064</guid>
      <description>&lt;p&gt;Hey dev++ community! 🚀&lt;/p&gt;

&lt;p&gt;Just completed the AWS AI &amp;amp; ML Scholars Challenge and got certified in Generative AI with AWS! &lt;/p&gt;

&lt;p&gt;Learned a ton about AWS Bedrock, SageMaker, prompt engineering, and building real AI applications. The hands-on experience with generative AI was amazing.&lt;/p&gt;

&lt;p&gt;Would love to connect with anyone else working on AI/ML projects or interested in AWS AI services!&lt;/p&gt;

&lt;p&gt;Check out my full post: (&lt;a href="https://www.linkedin.com/posts/himanshu748_aws-artificialintelligence-machinelearning-activity-7353138026996289538-tIXc" rel="noopener noreferrer"&gt;https://www.linkedin.com/posts/himanshu748_aws-artificialintelligence-machinelearning-activity-7353138026996289538-tIXc&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;What AI projects are you all working on? Let's share and learn together! 💪&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #AI #MachineLearning #DevCommunity[]
&lt;/h1&gt;

</description>
      <category>aws</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>devplusplus</category>
    </item>
    <item>
      <title>Get your startup logo in seconds</title>
      <dc:creator>member_26847952</dc:creator>
      <pubDate>Sat, 05 Jul 2025 18:32:52 +0000</pubDate>
      <link>https://dev.to/himanshu_748/get-your-startup-logo-in-seconds-4kp5</link>
      <guid>https://dev.to/himanshu_748/get-your-startup-logo-in-seconds-4kp5</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is my submission for &lt;a href="https://dev.to/deved/build-apps-with-google-ai-studio"&gt;DEV Education Track: Build Apps with Google AI Studio&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;An imagen powered logo generator for startups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://aistudio.google.com/apps/drive/18tmCeBIzNHseSJjtA4sVC5NHLAFnoAgS?showPreview=true&amp;amp;resourceKey=" rel="noopener noreferrer"&gt;https://aistudio.google.com/apps/drive/18tmCeBIzNHseSJjtA4sVC5NHLAFnoAgS?showPreview=true&amp;amp;resourceKey=&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5o4gn4oxfz6335wjf4m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5o4gn4oxfz6335wjf4m.jpg" alt="Prompting the app" width="800" height="1786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffosfdcn3aist19vj9esq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffosfdcn3aist19vj9esq.jpg" alt="results" width="800" height="1786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;It was nice working with Google ai studio after 1 and half years it's really upgraded &lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
