E2E MCP Test MCP Server

An end-to-end test MCP server that exposes a REST API as a set of tools

README.md

e2e-mcp-test

E2E test MCP server

Overview

This is a FastMCP server that exposes a REST API as a set of MCP (Model Context Protocol) tools. AI agents and LLMs can invoke these tools to interact with the upstream API.

Local Development

Prerequisites

  • Python 3.11+
  • The upstream API running at http://localhost:8080

Setup

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Run

python3 mcp_server.py

The server starts on http://0.0.0.0:8000/mcp using the streamable HTTP transport.

Container Build

docker build -t e2e-mcp-test .
docker run -p 8000:8000 e2e-mcp-test

CI/CD with Pipelines as Code (Tekton)

This project uses Pipelines as Code (PAC) for fully automated CI/CD on OpenShift. No manual setup is required -- every push to main automatically builds the container image and deploys to OpenShift.

The pipeline definition lives in .tekton/push.yaml and performs:

  1. Clone -- fetches the repository source
  2. Build -- builds the container image with buildah and pushes to the OpenShift internal registry
  3. Deploy -- applies the deployment manifests and rolls out the new version

How It Works

A GitHub webhook (created automatically by the RHDH template) sends push events to the Pipelines as Code controller on OpenShift. PAC reads .tekton/push.yaml from the repo and creates a PipelineRun automatically.

Manual Deployment (without pipeline)

Apply the included manifests directly:

oc apply -f deploy/deployment.yaml

This creates a Deployment, Service, and Route in the mcp-servers namespace. The Route provides a TLS-terminated public endpoint.

Customization

Edit mcp_server.py to replace the placeholder tools (list_items, get_item, create_item) with tools that match your actual API endpoints. Each @mcp.tool function maps to one REST endpoint:

HTTP Method MCP Tool Pattern
GET (list) Tool that returns a list of resources
GET (by id) Tool that returns a single resource
POST Tool that creates a resource
PATCH / PUT Tool that updates a resource
DELETE Tool that removes a resource

Tools 3

list_itemsReturns a list of resources from the upstream API
get_itemReturns a single resource by its ID
create_itemCreates a new resource in the upstream API

Try it

List all items available in the API.
Get the details for the item with ID 123.
Create a new item with the provided data.

Frequently Asked Questions

What are the key features of E2E MCP Test?

Exposes REST API endpoints as MCP tools. Built using the FastMCP framework. Supports CRUD operations via LLM tool calls. Ready for containerized deployment with Docker. Supports automated CI/CD pipelines via Tekton.

What can I use E2E MCP Test for?

Testing AI agent interactions with RESTful APIs. Rapid prototyping of MCP servers for custom backend services. Automating CRUD operations on internal APIs using natural language.

How do I install E2E MCP Test?

Install E2E MCP Test by running: python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

What MCP clients work with E2E MCP Test?

E2E MCP Test works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep E2E MCP Test docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare