An MCP (Model Context Protocol) server implementation in C# that provides OAuth authentication, OpenAPI proxy tools, session management, and login capabilities with support for local endpoint registration and session-aware tool decoration.
MCPify has 4 tools with significant definition quality gaps. Tool naming follows verb_noun patterns (login_auth_code_pkce, test_add, connect, dynamic_openapi_tools), which is correct. However, most tools lack proper parameter descriptions and output schemas. The test_add tool is properly defined with both parameters described. The connect tool has empty properties, making it unclear what it returns. The dynamic_openapi_tools tool is a catch-all proxy with minimal specificity. None of the tools document their output schemas, critical for LLM downstream tool chaining per pattern:tool and pattern:response-shaper. Only test_add and login_auth_code_pkce have descriptions; connect and dynamic_openapi_tools descriptions are vague. Error handling is not evident in any tool definition. The server does implement session management (SessionAwareToolDecorator) which is a positive sign for stateful operations, but this is not reflected in tool definitions.
Establish a new session with the server. Returns a unique Session ID. You MUST provide this Session ID in the 'sessionId' argument for ALL subsequent tool calls (e.g., login, fetch_secret) to maintain your authentication state.
Dynamically generated tools from OpenAPI operation descriptors. Each tool invokes the corresponding HTTP endpoint through the OpenAPI proxy.
Initiates the OAuth login flow. In interactive environments, attempts to open the system browser with the authorization URL and waits for the user to complete the login. In headless environments (detected automatically or configured via LoginBrowserBehavior option), returns the authorization URL immediately for manual authentication.
A test tool that adds two integers together.
Missing output schema documentation for all tools. LLMs cannot infer what fields to expect in responses, breaking downstream tool chaining and field selection logic.
login_auth_code_pkce sessionId parameter lacks description. No explanation of what sessionId is or where it comes from.
connect tool has empty input schema (no properties) and vague description. It is unclear what this tool returns (user documentation mentions 'Session ID' but this is not in the schema or description).
dynamic_openapi_tools is a generic proxy tool with no concrete parameters or output structure. Violates single-responsibility principle (pattern:tool). LLMs cannot reason about what endpoints exist or what they return.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 36 | - | v1 |
No error handling guidance in any tool. No recovery instructions (pattern:recovery-guide), no error categorization, and no actionable error messages documented.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The login and connect tools perform state-changing operations but do not declare this via annotations.