LetterMCP

MCP Agent Project Ideas for Developer Teams

Static API keys in config files are the root of MCP's security crisis—this project replaces them.

Columnist · · 8 min read · Updated
Cover illustration for “MCP Agent Project Ideas for Developer Teams”
Agentic AI Foundations · August 28, 2026 · 8 min read · 1,867 words

Adoption of MCP across developer tooling is outpacing the maturity of the security model underneath it. The NSA's May 2026 cybersecurity information sheet describes a protocol that shipped with a flexible, underspecified design and flipped the usual client-server relationship in ways that opened up attack paths nobody had mapped yet, and those paths are no longer hypothetical since public exploits have made them concrete. The gap between shipping fast and doing the work appears in a specific habit: dropping a long-lived API key into an environment variable gets a demo working today, while building proper authorization takes time most launch schedules don't want to spend. Most MCP servers running right now hand an agent the full authority of a static key, with no scoping of what it can touch, no way to delegate narrower permissions, and no record of which agent was acting on whose behalf. Every project idea in this piece is a response to that specific gap. None of them are cool builds for their own sake; each one closes a hole that is already being exploited somewhere in production.

The specific threats a well-designed MCP project must account for

Diagram: Three Attack Paths MCP Projects Must Close. Visualizes: Visualize three distinct attack types that MCP deployments face, shown as a stepped or ranked threat flow: (1) Tool Poisoning — hidden instructions in a tool description steal data…

Three kinds of attack matter most for teams building their own MCP projects: tool poisoning, credential exposure, and prompt injection that spreads through chains of agents talking to each other. Each one points to a different design decision, so it's worth knowing what each actually looks like before getting to the projects themselves.

Tool poisoning works by hiding instructions inside a tool's description instead of its code. A large language model reads that description as trusted context, the same way it reads its own system prompt, and acts on whatever it finds there. Invariant Labs showed how far this goes inside Cursor IDE: a tool description carried a hidden instruction that quietly pulled a user's SSH private key off their machine during an ordinary session. Cursor's own confirmation dialog for tool calls didn't show the full input, so both the stolen key and the instructions that stole it stayed invisible to the person using the tool.

Credential exposure doesn't even need a poisoned tool description. In a separate exploit against the GitHub MCP server, Invariant Labs showed that an attacker can skip the tool definition entirely and plant a prompt injection inside a GitHub Issue instead. The agent read the issue, followed the instructions buried in it, and pulled data out of private repositories the user had authorized it to access.

The NSA's analysis flags unsanitized MCP tool parameters reaching execution environments without proper limits, a known bug class tracked under CWE-77, CWE-78, CWE-94, and CWE-95 that opens the door to arbitrary code execution on the host machine. Research from OX Security traced the specific mechanism: the STDIO transport hands parameters straight to the host operating system's shell with no sanitization at all.

None of this is limited to homegrown or careless implementations. Anthropic's own Git MCP Server was hit by an exploit chain publicly disclosed on January 20, 2026 and patched the previous December. Three CVEs, CVE-2025-68143, CVE-2025-68144, and CVE-2025-68145, combined prompt injection with the Filesystem MCP server to achieve remote code execution, and the attacker walked away with configuration details, API keys, and authentication tokens without ever needing valid credentials. If an official reference implementation can be broken this way, no team should assume its own server is safe by default.

Every project below builds in specific requirements for authorization, scoping, and audit logging from the start, rather than treating those as something to bolt on once the thing works.

Retrofitting MCP security

Identity, scoping, and audit are the three hardest things to fix after an MCP project is already running, and they're also the three cheapest to get right at the drawing-board stage. Once real agents are live with real credentials touching real data, changing how they're identified or how their permissions are scoped means re-architecting a system in production, not editing a spec.

Part of the difficulty is that the standards are still catching up. The MCP extension stabilized in June 2026 added Enterprise-Managed Authorization, letting organizations tie employee access to MCP servers through an identity provider they already use, like Okta or Microsoft Entra ID. That extension covers human users, not unattended autonomous agents acting on their own. A separate extension, the MCP OAuth Client Credentials spec, covers unattended clients, but standardized agent identity and delegation are still active areas of development, not settled ground. A team must plan separately for human logins and for agents acting independently, or it will hit a wall the moment it tries to move from pilot to production. Gartner named agentic AI oversight its top cybersecurity trend for 2026, warning that unmanaged agent proliferation is already producing unsecured code and regulatory compliance risk, a warning aimed at leadership, not just engineers.

MCP Credential Vault with short-lived token broker

The single most common failure in MCP deployments is a long-lived API key sitting in a config file, and the fix isn't to guard that key more carefully, it's to make short-lived, scoped credentials the only way an agent can authenticate at all. The project is a broker: wire a secrets manager, something like HashiCorp Vault, into the MCP server so it issues a scoped credential per agent, per session, with expiry tied to inactivity or to the end of the session. No static key lives in a config file, an environment variable, or a repository, ever.

A handful of design choices need to be settled before a single line of this gets written, not after. Every credential the broker issues should be scoped to the smallest set of tools and resources the agent actually needs for its task, rather than inheriting the full reach of whatever API key sits behind it. Credentials that go unused past a defined window should expire automatically, closing off a stale-credential attack path without anyone having to notice and revoke it by hand. The broker itself should require the requesting agent to present a real, verifiable identity, not just the name of a service account, before it issues anything. And the broker needs to keep an issuance log from day one: which agent asked for which credential, for which MCP server, and when, so the audit trail exists because it was built into provisioning, not because someone reconstructed it from scattered logs after something went wrong.

The obvious objection is that wiring in a secrets manager adds latency and operational overhead for a team trying to move fast. That trade is worth making. A credential that expires in minutes and only unlocks one narrow set of tools is nearly useless to an attacker who manages to intercept it, while a static key sitting in an environment variable can be used immediately and indefinitely by anyone who finds it. UltraViolet Cyber's threat advisory recommends, as an immediate step, turning off auto-approval of tool invocations and enforcing OAuth 2.1 authentication, least-privilege scoping, and structured audit logging on every MCP server connection. This project is what that recommendation looks like once it's actually built.

Agent identity registry and CI/CD permissions auditor

Credentials solve authentication. They don't solve the separate problem of knowing, at any given moment, which agents exist, what they're connected to, and who's responsible for them. Without a central registry mapping each agent to its MCP server connections, its permission grants, and an accountable human owner, over-provisioned agents pile up quietly and audit logs end up with nothing to anchor them to.

The project here is a registry wired directly into CI/CD. For every agent deployment, it records which MCP servers that agent connects to, what tool scopes it's requesting, which team owns it, and what state its approval is in, and it flags any agent-to-tool grant that looks over-provisioned before that deployment ever reaches production. Each entry in the registry needs a specific set of fields to be useful: a real agent identity rather than just a service account name, the full list of MCP servers it touches, the tool scopes it has on each one, the owning team, the date it was approved, and a review interval that forces someone to look at it again later. The CI/CD gate itself should block any deployment where the requested scopes exceed what's already been approved in the registry. Catching scope creep at deploy time costs a few minutes of friction. Catching it after a breach costs considerably more.

One requirement is easy to skip early and painful to add later: every entry needs a fast disable path, a kill switch that can shut down one specific agent-server connection without taking down every other workflow that happens to share infrastructure with it. Bolting that onto a registry that wasn't built with it in mind is close to impossible. That is why it belongs in the design from the start rather than on a future roadmap.

The registry also needs to be the thing every audit log points back to. Every tool invocation log should carry the registry's agent identity attached to it alongside the session ID. The payoff becomes visible the day something actually goes wrong: without a registry, answering "which agents had access to this MCP server last Tuesday?" can take hours of digging through logs that were never built to answer that question. With a registry, it's a single query.

Tool allowlist gateway with signed manifests and version pinning

Approving a tool once, at the moment it connects, isn't enough on its own, because a tool whose description or behavior can change silently afterward turns that one-time approval into a false sense of safety. What's needed is a gateway that enforces version pinning and blocks anything unsigned or unreviewed from running, continuously, not just at connection time.

Tool definitions need to be pinned to a specific version and a specific hash at the moment they're approved, because a server URL can point to something different tomorrow. A tool that matched its approved version last week is a different artifact if its definition has changed since, even if the URL looks the same. The gateway should also require a cryptographic signature from a known, controlled signing key before it admits any tool definition, and it should block unsigned definitions by default rather than merely flagging them for review. Dynamic tool additions, any tool that shows up in a tools-list response but wasn't part of the originally approved manifest, should be rejected outright and trigger an alert, not get waved through because it looked similar enough.

The ClawHub marketplace incident shows what happens at scale when provenance isn't enforced this way: Antiy CERT confirmed 1,184 malicious skills distributed through that marketplace. A legitimate marketplace is still not a substitute for verifying the provenance of each tool definition an agent actually calls, no matter how trusted the platform distributing it seems.

The likely pushback is that signed manifests slow down the everyday workflow of adding a new MCP tool. That friction is doing its job. It forces someone with real authority to look at what the agent is about to be allowed to run, before it runs, rather than after the fact when the only remaining question is how much damage already happened.

Sources

  1. AI Agent Security and MCP Defense Guide
  2. AI Agent Security Risks 2026: MCP, OpenClaw & Supply Chain
  3. Threat Advisory: MCP Threats
  4. Model Context Protocol (MCP): Security Design ...
  5. Enterprise-Managed Authorization: Zero-touch OAuth for MCP

More in Agentic AI Foundations