Skip to content

Conversation

@technicalpickles
Copy link
Contributor

Summary

This PR adds the specification for a new /mcp/direct endpoint that exposes all upstream MCP tools directly alongside internal MCPProxy tools.

Related #279

Motivation

Per Anthropic's Advanced Tool Use announcement, AI platforms are adopting built-in tool search capabilities. This creates a need for MCPProxy to support direct tool access without the search-first workflow, while preserving its other value (centralized auth, Docker sandboxing, single management point).

What This PR Contains

Specification only - no implementation yet.

  • specs/025-mcp-direct-endpoint/spec.md - Full feature specification
  • specs/025-mcp-direct-endpoint/checklists/requirements.md - Quality validation checklist

Key Design Decisions

Decision Choice Rationale
Config flag enable_direct_endpoint Opt-in behavior
Default value false Conservative, existing behavior unchanged
Quarantined servers Excluded Security - don't expose unapproved tools
Tool annotations Preserved Maintain readOnlyHint, destructiveHint, etc.
Tool naming server:tool for upstream Consistent with existing call_tool_* format

Spec Highlights

  • 5 user stories prioritized P1-P3
  • 15 functional requirements - all testable
  • 5 success criteria - measurable outcomes
  • Edge cases documented (collision handling, rapid reconnects, etc.)

Next Steps

  1. Review spec for completeness
  2. Run /speckit.plan to generate implementation plan
  3. Implement feature

Test Plan

  • Spec reviewed for completeness
  • Design decisions validated
  • Ready for implementation planning

technicalpickles and others added 2 commits January 26, 2026 13:07
Related smart-mcp-proxy#279

Adds feature specification for a new `/mcp/direct` endpoint that exposes
all upstream MCP tools directly alongside internal MCPProxy tools.

This spec documents the design decisions, user stories, functional
requirements, and success criteria for the feature. Implementation
will follow in subsequent commits.

## Key Design Decisions
- Config flag `enable_direct_endpoint` (default: false, opt-in)
- Quarantined/disabled/disconnected servers excluded
- Tool annotations preserved from upstream
- Upstream tools namespaced as `server:tool`

## Spec Contents
- 5 prioritized user stories (P1-P3)
- 15 functional requirements
- 5 measurable success criteria
- Edge cases and assumptions documented
- Add User Story 6: Admin Server Management (disable/enable/quarantine)
- Add FR-016: Require `notifications/tools/list_changed` for tool sync
- Add SC-006: Notification delivery within 1 second of admin action
- Update FR-003: Exclude redundant search-workflow tools from /mcp/direct
- Update Key Entities: Document notification mechanism

Related smart-mcp-proxy#279
@Dumbris
Copy link
Contributor

Dumbris commented Jan 26, 2026

@technicalpickles This PR makes a lot of sense! I've added some details to the spec:

  • User Story 6: Admin Server Management - covers the scenario when an admin disables/enables/quarantines/unquarantines a server and connected clients need to be notified
  • FR-016: Explicit requirement to send MCP notifications/tools/list_changed to all connected clients when the tool list changes
  • FR-003 update: Exclude redundant search-workflow tools (retrieve_tools, call_tool_*) from /mcp/direct since they serve no purpose in direct mode
  • SC-006: Success criterion for notification delivery timing

These changes ensure the spec covers the full MCP protocol compliance for dynamic tool list updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants