cd /news/ai-agents/i-built-an-mcp-agent-framework-for-m… · home topics ai-agents article
[ARTICLE · art-16486] src=dev.to pub= topic=ai-agents verified=true sentiment=↑ positive

I Built an MCP Agent Framework for My B.Tech Major Project. It Got 750+ npm Downloads in Week One. Here's the Comeback Story.

A developer built the Unified MCP Framework, a full-stack AI agent system that routes natural language commands to tools like filesystems, browsers, and GitHub APIs, as a B.Tech major project. After initially neglecting documentation, the developer returned post-graduation to add proper setup guides, error handling, and test files, resulting in 750+ npm downloads in the first week of re-release. The code remained unchanged; the documentation overhaul alone drove the adoption spike from single-digit weekly downloads.

read3 min publishedMay 28, 2026

This is a submission for the GitHub Finish-Up-A-Thon Challenge

Last semester, under the pressure of B.Tech finals and a looming presentation deadline, I shipped a full-stack AI agent system called the Unified MCP Framework. The idea was straightforward: build a single orchestration layer where an AI could interpret natural language commands and route them to the right tool - a filesystem, a browser, a GitHub API - without the developer having to wire each one manually.

The core architecture had three pieces:

It worked. The demo went well. I submitted the PDF, the PPTX, the poster - and then I closed the repo and moved on.

The problem was that "it worked" and "it was usable by anyone else" were two very different things.

📦 npm package: [unified-mcp on npm](https://www.npmjs.com/package/unified-mcp)

💻 GitHub repo: [Om-Shree-0709/Major-Project](https://github.com/Om-Shree-0709/Major-Project)

The system takes a natural language query like:

"Summarize the latest commits in my repo and write a summary file."

...and routes it across the GitHub tool (fetch commits), Filesystem tool (write file), and Gemini (generate summary) - with each tool call visible in the frontend trace panel.

When I came back to this project after graduation exams, here's what I found:

Before:

.env.example

, so first-time setup always failedunified-mcp

) existed but had no usage examples - just a package.json and good intentionsAfter:

.env.example

with inline commentsQUICK_TEST_QUERIES.md

and COMPLEX_TEST_QUERIES.md

so any developer could validate the system end-to-end in under 5 minutes"Access denied: path is outside sandbox directory"

The week the npm package was properly documented and re-announced: 750+ downloads.

That number matters to me not because it's large - it isn't - but because week one with no usable docs had yielded single digits. The code hadn't changed. The docs had.

I'll be specific about where it actually helped, because "Copilot helped me" is a useless sentence.

Rewriting the README: I had rough notes about what the system did. Copilot autocompleted the setup steps once I established the structure - it understood that after pip install -r requirements.txt

comes playwright install chromium

, and it kept that sequencing consistent when I reorganized sections. Saved probably 30 minutes of manual tab-matching.

The .env.example file: I typed the first variable with a comment. Copilot generated the remaining four in the same format - correct variable names, sensible placeholder values. That's the kind of tedious-but-error-prone work where it genuinely earns its keep.

The error handling refactor: The original filesystem_server.py

had bare except Exception as e: raise e

blocks everywhere. I asked Copilot to help me add user-facing error messages. It suggested wrapping each block with specific messages tied to the exception type - FileNotFoundError

, PermissionError

, IsADirectoryError

  • rather than a single generic catch. That was the right call and I wouldn't have done it that cleanly by hand at 11pm.

The COMPLEX_TEST_QUERIES.md: I started writing test cases by hand. Copilot kept generating the next logical one based on the pattern I established. "List all Python files in the sandbox" → "Read the contents of a specific file" → "Write a new file with generated content." The progression made sense and I kept most of it.

Where it didn't help: anything requiring knowledge of my specific project structure. It would hallucinate import paths, suggest tools I hadn't built, and occasionally propose FastAPI route patterns that conflicted with what I already had. The rule I settled on: use it for boilerplate and structure, verify everything that touches the actual logic.

The original project was built in a sprint, for a grade. This version was rebuilt for the people who might actually use it. That's a different problem, and it turned out to be a harder one. GitHub Copilot made the second pass faster - not by doing the thinking, but by handling the parts that didn't require any.

If you're building MCP tooling and want a working reference implementation with a real setup path, the repo is linked above. The npm package is live. Feedback welcome. Follow for more coverage on MCP, agentic AI, and developer infrastructure.

── more in #ai-agents 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-built-an-mcp-agent…] indexed:0 read:3min 2026-05-28 ·