I Ran My Own MCP Server Like a Customer Would
OmniContext claimed a live context://current resource. A stranger install could not even parse the file. Here is the reproduction, the three-line fix, and the protocol handshake that now answers.
I put OmniContext on my resume as a working MCP server. Then I installed it the way a stranger would.
npm pack. Global install. Run the binary.
It died before it listened.
Two independent fatal bugs
bin/mcp.js could not parse. Three tool-response strings used backslash-escaped template literals outside any template literal:
content: [{ type: "text", text: \`Task added: \${label}\` }],node --check failed with SyntaxError: Invalid or unexpected token. The file has never started.
The markdown fence inside the context://current resource does need escaped backticks. Those two lines were correct. The three tool strings were not. Pattern recognition without execution is how this survives a code review and still ships broken.
Second bug: the same file requires @modelcontextprotocol/sdk three times. It was never declared in package.json. A clean install would have thrown MODULE_NOT_FOUND even after the syntax fix.
The proof that matters
After a three-line unescape and adding the SDK as a real dependency, I packed it again and spoke the protocol over stdio.
| Request | Response |
|---|---|
| initialize | omni-context-mcp 0.1.0, capabilities: resources, tools |
| tools/list | get_tasks, add_task, complete_task |
| resources/list | context://current |
Every claim on the resume was true. The code just could not run. The fix is live at neerajbhargav/omni-context@c13d3dd.
Why I am writing this down
Forward-deployed work is not "I built an MCP server." It is "I installed it the way the customer will, watched it fail, and left a reproduction plus a passing handshake." That is the same instinct as killing a model upgrade because the eval said no.
If you clone OmniContext today, the server starts. If you ask it for context://current, it answers. That is the only version of the claim I am willing to keep.