mcp-tool

Adds, modifies, or removes tools on an OAuth-authorized MCP server endpoint.

Updated Aug 13, 2026
One-click install
npx skills add https://github.com/Evolutionary-Leadership/harness --skill mcp-tool-evolutionary-leadership
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mcp-tool
Source: https://github.com/Evolutionary-Leadership/harness/tree/main/.claude/setup/mcp/.claude/skills/mcp-tool
Command: npx skills add https://github.com/Evolutionary-Leadership/harness --skill mcp-tool-evolutionary-leadership

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Exposing application capabilities to AI agents through an MCP endpoint requires careful decisions about tool design, authorization scopes, service-layer boundaries, and testing, and mistakes create security holes or confusing agent behavior. ## Core Features & Use Cases - Tool Design Guidance: Decides whether a capability should be a tool at all, favoring user-level steps over raw endpoint exposure and search over unbounded list operations. - Structured Tool Implementation: Enforces Zod input schemas, output schemas with structuredContent, behavioral annotations, and audited registration in src/lib/mcp/server.ts. - Scope and Consent Management: Splits OAuth scopes when a tool's blast radius differs, updating the consent screen labels so users understand what they grant. - Use Case: When adding an archive_note tool, the skill walks through extending the service layer, registering the tool with audited() logging, writing integration tests via the mcp-request helper, and documenting the change in the architecture docs. ## Quick Start Add a new MCP tool that lets agents search notes by keyword, following the service-layer boundary and registering it with audited logging.

Frequently Asked Questions about mcp-tool

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new tool to an MCP server endpoint?

Register the tool inside buildMcpServer in src/lib/mcp/server.ts with a description, Zod inputSchema, outputSchema, and annotations, wrapped in audited() for logging. Call only the service layer, never repositories or the Drizzle client directly.

When should a capability become an MCP tool versus staying internal?

Expose it only if a person would do it as one step, no existing tool covers it with different arguments, and it does not fetch everything unbounded. Prefer search tools over list tools to keep agents from pulling entire tables into context.

How do I test MCP tools without false passes?

Build requests with the tests/helpers/mcp-request.ts helper, never by hand. Hand-built requests missing the _meta envelope or Mcp-Method headers get silently served by the legacy fallback, so tests pass while exercising the wrong code path.

When should I split OAuth scopes for MCP tools?

Split scopes only when a new tool's blast radius genuinely differs from existing tools. Add the scope in src/lib/auth.ts, enforce it in the endpoint or per tool, and update the consent screen's SCOPE_LABELS so users can read what they grant.

What are the limitations of removing an MCP tool?

Removal is a breaking change to a public interface because a tool disappearing mid-conversation breaks clients. Delete the registration, its tests, and its documentation rows together in the same change.