Merge pull request #1260 from fadexadex/fadex-idea
docs: add GSoC 2026 initial idea submission for MCP Testing
140
doc/proposals/2026/gsoc/idea_Daniel_Fadehan_mcp-testing.md
Normal file
@@ -0,0 +1,140 @@
|
||||
### Initial Idea Submission
|
||||
|
||||
**Full Name:** Daniel Fadehan
|
||||
**University name:** Redeemer's University
|
||||
**Program you are enrolled in:** Computer Science
|
||||
**Year:** 3rd year
|
||||
**Expected graduation date:** 2027
|
||||
|
||||
**Project Title:** MCP Testing
|
||||
|
||||
|
||||
**Idea description:**
|
||||
|
||||
The Model Context Protocol (MCP) acts as the API layer of the AI world, defining a standard way for AI agents to discover, understand, and interact with tools, data, and software systems - much like REST or GraphQL do for traditional applications.
|
||||
|
||||
In this project, my task is to strengthen the MCP Developer ecosystem by designing and building the capability to intuitively create and comprehensively test MCP servers and clients.
|
||||
|
||||
For my idea, I am looking at structuring the application around two main tabs: **Create** and **Test**, providing a seamless workflow from server construction to validation.
|
||||
|
||||
---
|
||||
|
||||
## Part 1: Creation (Create Tab)
|
||||
|
||||
The Create tab provides an intuitive visual environment for constructing MCP servers without writing code.
|
||||
|
||||
### 1.1 Server Setup
|
||||
|
||||
Users begin by creating a new MCP server with basic configuration:
|
||||
- **Server Name:** A unique identifier for the server (e.g., `weather-api`)
|
||||
- **Transport Type:** Choose between `STDIO` or `HTTP` transport protocols
|
||||
|
||||
The sidebar displays all created servers, allowing users to manage multiple MCP servers within a single workspace.
|
||||
|
||||

|
||||
|
||||
### 1.2 Defining Server Components
|
||||
|
||||
Once a server is created, users can add three types of MCP primitives:
|
||||
|
||||
#### Tools
|
||||
Tools are executable functions that the AI can invoke. Users define:
|
||||
- **Tool Name:** (e.g., `get_forecast`)
|
||||
- **Description:** Human-readable explanation of what the tool does
|
||||
|
||||

|
||||
|
||||
#### Resources
|
||||
Resources expose data to the AI model. Configuration includes:
|
||||
- **Type:** Resource Template or Static Resource
|
||||
- **URI Template:** Dynamic URI patterns with variables (e.g., `weather/{city}`)
|
||||
- **MIME Type:** Content type specification (e.g., `application/json`)
|
||||
- **Response Template:** Define the response structure with variable interpolation using `{{variable}}` syntax
|
||||
|
||||

|
||||
|
||||
#### Prompts
|
||||
Prompt templates provide reusable conversation starters:
|
||||
- **Arguments:** Define typed parameters (String, Number, etc.) with descriptions
|
||||
- **Messages:** Configure the prompt messages that use the defined arguments
|
||||
|
||||

|
||||
|
||||
### 1.3 Visual Workflow Builder
|
||||
|
||||
For each tool, users orchestrate the execution logic using a visual node-based workflow editor:
|
||||
|
||||
- **Input Node:** Entry point that defines tool parameters (name, type, description, required flag)
|
||||
- **Processing Nodes:** Add HTTP requests, conditional logic, data transformations
|
||||
- **Output Node:** Defines the final response returned by the tool
|
||||
|
||||
The workflow flows left-to-right: `Input → Processing → Output`
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 1.4 Workflow Execution Preview
|
||||
|
||||
Users can test their workflow directly within the Create tab:
|
||||
- Click **Execute** to run the workflow
|
||||
- View execution results showing each step (input → apiCall → output)
|
||||
- Inspect the output data in real-time
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Part 2: Testing (Test Tab)
|
||||
|
||||
The Test tab provides a comprehensive environment for validating MCP servers, supporting both locally-built servers and external servers.
|
||||
|
||||
I am looking at building the test suite upon the already existing mcp inspector, so all the features that exist within the suite are already avaible out of the box, so I would simply extend the ui to be more intuitive to use.
|
||||
|
||||
### 2.1 Server Selection
|
||||
|
||||
Users can test servers from two sources:
|
||||
|
||||
- **Builder Preview:** Test servers created within the Create tab
|
||||
- **External Server:** Connect to any external MCP server via STDIO or HTTP
|
||||
|
||||

|
||||
|
||||
### 2.2 Testing Built-in Servers (Builder Preview)
|
||||
|
||||
When testing a server built in the workflow:
|
||||
1. Select the server from the dropdown (e.g., `weather`, `test`)
|
||||
2. The connection shows as **"Local Builder Mode"**
|
||||
3. All tools, resources, and prompts are automatically discovered
|
||||
|
||||
Testing interface features:
|
||||
- **Form View:** User-friendly form with labeled input fields
|
||||
- **JSON View:** Raw JSON input for advanced users
|
||||
- **Run Tool:** Execute the tool with provided parameters
|
||||
- **Execution Details:** View step-by-step execution (input → apiCall → output)
|
||||
- **History:** Track previous test runs with timing information
|
||||
|
||||

|
||||
|
||||
### 2.3 Testing External Servers
|
||||
|
||||
For external MCP servers:
|
||||
1. Switch to **External Server** mode
|
||||
2. Provide connection details (command/URL)
|
||||
3. Connect and discover available tools
|
||||
4. Test tools with the same rich interface
|
||||
|
||||
The UI displays tool metadata including annotations like `Read-only` and `Idempotent` to help users understand tool behavior.
|
||||
|
||||

|
||||
|
||||
### 2.4 Test Results & Debugging
|
||||
|
||||
Each test execution provides:
|
||||
- **Success/Failure Status** with response time (e.g., `Success 226ms`)
|
||||
- **Final Output:** The complete response data
|
||||
- **Execution Steps:** Breakdown of each workflow step with intermediate state
|
||||
- **Copy functionality:** Easily copy outputs for further use
|
||||
|
||||
|
||||
|
||||
BIN
doc/proposals/2026/gsoc/images/1. creating an mcp server.png
Normal file
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 281 KiB |
|
After Width: | Height: | Size: 266 KiB |
|
After Width: | Height: | Size: 209 KiB |
|
After Width: | Height: | Size: 73 KiB |
BIN
doc/proposals/2026/gsoc/images/5. running the tool workflow.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
doc/proposals/2026/gsoc/images/6. mcp resource config.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 189 KiB |
|
After Width: | Height: | Size: 97 KiB |
BIN
doc/proposals/2026/gsoc/images/9. running the tool.png
Normal file
|
After Width: | Height: | Size: 273 KiB |