Bloodtest MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bloodtest MCP Serveranalyze my blood test results for vitamin deficiencies"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bloodtest MCP Server
A comprehensive health coaching system that combines blood test analysis with evidence-based nutritional therapy recommendations, powered by Retrieval-Augmented Generation (RAG) technology.
๐ Live Endpoints:
Primary: https://supplement-therapy.up.railway.app (Active)
New Domain: https://bloodtest-mcp.up.railway.app (Being configured)
Table of Contents
Related MCP server: Medical GraphRAG Assistant
Overview
Key Features
Blood Test Analysis: Get optimal ranges for 8+ key health markers based on functional medicine
Personalized Recommendations: Evidence-based supplement and lifestyle advice from German medical literature
RAG-Powered Knowledge Base: Search through indexed medical texts using FAISS vector database
MCP Protocol Support: Integrate with Claude Desktop and other MCP-compatible clients
Multi-format Support: Process blood test results in PDF, image, and text formats
RESTful API: Access blood test reference values programmatically
Health Coaching Workflows: Comprehensive assessment and recommendation generation
Technical Stack
Framework: FastMCP with FastAPI integration
AI/ML: LangChain, sentence-transformers, FAISS
File Processing: PyPDF, python-multipart
Configuration: YAML-based workflow definitions
Deployment: Docker with Railway cloud deployment
Language: Python 3.12+
User Manual
Getting Started
Access the Production System
Current Active Endpoint:
Web Interface: https://supplement-therapy.up.railway.app
API Base URL:
https://supplement-therapy.up.railway.appMCP SSE Endpoint:
https://supplement-therapy.up.railway.app/sseHealth Check:
https://supplement-therapy.up.railway.app/health
New Endpoint (being configured):
https://bloodtest-mcp.up.railway.app- Will be available once Railway configuration is complete
Authentication
Currently, no authentication is required for public endpoints
For production use, implement Bearer token authentication
Claude Desktop Integration
To use this MCP server with Claude Desktop:
Open Claude Desktop Configuration
Click on Claude menu (macOS) or File menu (Windows)
Select Settings โ Developer โ Edit Config
Add Server Configuration Add the following to your
claude_desktop_config.json:{ "mcpServers": { "bloodtest-health-coach": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-sse", "https://supplement-therapy.up.railway.app/sse" ], "env": {} } } }Note: Once
bloodtest-mcp.up.railway.appis active, update the URL tohttps://bloodtest-mcp.up.railway.app/sseSave and Restart Claude Desktop
Save the configuration file
Completely quit and restart Claude Desktop
The health coach tools should now appear in Claude
Configuration File Locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Using the Health Coach
Upload Blood Test Results
Supported formats: PDF, JPG, PNG
German lab reports are automatically parsed
Optimal ranges are compared against your results
Complete Health Assessment
Provide demographic information
Describe current symptoms and health concerns
Set your health goals and priorities
Receive Personalized Recommendations
Supplement protocols with specific dosages and timing
Dietary modifications based on your deficiencies
Lifestyle interventions for optimal health
All recommendations include citations from medical literature
Available MCP Tools
get_book_infoReturns metadata about loaded medical books and RAG status
Shows available workflows and system capabilities
list_workflowsLists all available health coaching workflows
Each workflow has a specific focus area
supplement_therapyMain health coaching workflow
Provides comprehensive supplement recommendations
Requires patient assessment data
search_book_knowledgeSearch through indexed medical knowledge base
Returns relevant passages with page references
Example: "optimal ferritin levels for women"
sequential_thinkingMulti-step reasoning for complex health analysis
Useful for differential diagnosis and complex cases
Developer Manual
Prerequisites
Python 3.12 or higher
Docker (optional, for containerized deployment)
Git
Installation
Clone the Repository
git clone https://github.com/longevitycoach/bloodtest-mcp-server.git cd bloodtest-mcp-serverCreate Virtual Environment
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall Dependencies
pip install -r requirements.txt
Development Setup
Initialize the RAG Knowledge Base
# Place PDF files in resources/books directory INDEX_NAME="supplement-therapy" PDF_DIRECTORY="resources/books" python scripts/init_rag.pyConfigure the Application
Edit
resources/structure.yamlto customize workflowsEnsure
rag.config.index_namematches your INDEX_NAME
Run the Development Server
# Run MCP server with SSE transport python server.py --host 0.0.0.0 --port 8000 # Or run integrated server (MCP + API) python integrated_server.py --host 0.0.0.0 --port 8000 # Or run just the FastAPI server python main.py
API Documentation
Base Endpoints
GET /- API information and available endpointsGET /health- Health check endpointGET /parameters- List all blood test parametersGET /reference/{parameter}- Get reference range for a parameterGET /sse- MCP Server-Sent Events endpoint
Example API Usage
import requests
# Get all available parameters
response = requests.get("https://supplement-therapy.up.railway.app/parameters")
print("Available parameters:", response.json()["parameters"])
# Get reference range for ferritin
response = requests.get(
"https://supplement-therapy.up.railway.app/reference/ferritin",
params={"sex": "female"}
)
print("Ferritin reference:", response.json())Blood Test Parameters Supported
Parameter | Unit | Description |
ferritin | ng/ml | Iron storage protein |
tsh | mIU/l | Thyroid-stimulating hormone |
vitamin_d | ng/ml | 25-OH Vitamin D |
vitamin_b12 | pmol/l | Vitamin B12 (Holo-TC) |
folate_rbc | ng/ml | Red Blood Cell Folate |
zinc | mg/l | Essential mineral |
magnesium | mmol/l | Whole blood magnesium |
selenium | ยตg/l | Antioxidant mineral |
Testing
# Run all tests with coverage
pytest tests/ -v --cov=bloodtest_tools --cov-report=term-missing
# Run specific test file
pytest tests/test_api_endpoints.py -v
# Run with Makefile
make test
# Run MCP Integration Tests
python tests/test_mcp_client.pyTest Organization
tests/test_api_endpoints.py- API endpoint teststests/test_bloodtest_tools.py- Core functionality teststests/test_edge_cases.py- Edge case handlingtests/test_integration.py- Integration teststests/test_mcp_client.py- MCP SSE protocol teststests/test_mcp_integration.py- Comprehensive MCP integration teststestdata/- Comprehensive test scenarios and data
MCP Integration Testing
The MCP integration tests validate the server's SSE (Server-Sent Events) protocol implementation and knowledge base functionality:
Positive Test Cases (10 tests):
Health Check - Verifies server health endpoint
SSE Connection - Tests SSE endpoint connectivity
Ferritin Knowledge Query - Validates optimal range information
Vitamin D Query - Tests deficiency symptom searches
Magnesium Supplementation - Verifies dosage guidance
TSH Interpretation - Tests thyroid value interpretation
B12 Holotranscobalamin - Validates B12 information retrieval
Selenium Immune System - Tests mineral-immune connections
Zinc-Copper Ratio - Validates supplementation balance info
Folate Requirements - Tests folate reference information
Negative Test Cases (10 tests):
Invalid Endpoint - 404 response for non-existent paths
Wrong HTTP Method - Rejects POST on SSE endpoint
Invalid Health Method - Rejects POST on health endpoint
Invalid API Path - Handles /api/invalid correctly
Test Path - Rejects /test endpoint
Admin Path - Rejects /admin access
Path Traversal - Blocks /../etc/passwd attempts
Health Path Traversal - Blocks /health/../../
SSE Subpath - Rejects /sse/invalid
Null Path - Handles /null endpoint
Running Integration Tests Locally:
# Build and run Docker container
docker build -t bloodtest-mcp-server:local -f Dockerfile.optimized .
docker run -d --name bloodtest-local -p 8001:8000 bloodtest-mcp-server:local
# Run integration tests
python tests/test_mcp_client.py
# Check health endpoint
curl http://localhost:8001/health
# Clean up
docker stop bloodtest-local && docker rm bloodtest-localTest Report
The MCP integration test suite validates the server's functionality, security, and performance. Here's the comprehensive test report from the latest execution:
๐ Overall Results
Total Tests: 37 (20 MCP + 17 Reference Values)
Passed: 37/37 (100%)
Failed: 0
Execution Time: < 45 seconds
๐ฅ Health Check Tests (4/4 Passed)
Test | Description | Result | Response Time |
Health Endpoint | Validates | โ Passed | 1.36ms |
SSE Endpoint | Verifies | โ Passed | < 5ms |
Invalid Endpoint | Ensures 404 for non-existent paths | โ Passed | < 2ms |
Performance | Checks response time under threshold | โ Passed | 1.36ms |
๐ Positive Knowledge Base Tests (10/10 Passed)
Test # | Query Type | Description | Result |
1 | Health Check | Server health verification | โ Passed |
2 | SSE Connection | Protocol connectivity test | โ Passed |
3 | Ferritin | Optimal range information | โ Passed |
4 | Vitamin D | Deficiency symptom search | โ Passed |
5 | Magnesium | Supplementation guidance | โ Passed |
6 | TSH | Thyroid value interpretation | โ Passed |
7 | B12 | Holotranscobalamin levels | โ Passed |
8 | Selenium | Immune system connection | โ Passed |
9 | Zinc-Copper | Ratio balance information | โ Passed |
10 | Folate | Requirements validation | โ Passed |
๐ก๏ธ Security & Error Handling Tests (10/10 Passed)
Test # | Attack Vector | Expected Response | Result |
11 | Invalid endpoint | 404 Not Found | โ Passed |
12 | POST on SSE | 405 Method Not Allowed | โ Passed |
13 | POST on health | 405 Method Not Allowed | โ Passed |
14 |
| 404 Not Found | โ Passed |
15 |
| 404 Not Found | โ Passed |
16 |
| 404 Not Found | โ Passed |
17 |
| 404 (Path Traversal Blocked) | โ Passed |
18 |
| 404 (Path Traversal Blocked) | โ Passed |
19 |
| 404 Not Found | โ Passed |
20 |
| 404 Not Found | โ Passed |
๐ Performance Metrics
Docker Build Time: ~5 seconds
Server Startup Time: ~10 seconds
Health Check Response: 1.36ms average
SSE Connection Time: < 5ms
Error Response Time: < 2ms
๐ง Test Environment
Docker Image:
bloodtest-mcp-server:localContainer Port: 8001 (mapped to internal 8000)
Test Framework: Python requests + custom MCP client
Execution Date: Latest CI/CD run
๐ Reference Values Tests (17/17 Passed)
Test # | Parameter | Optimal Range | Supplement Advice | Result |
1 | Ferritin | 70-200 ng/ml | Iron bisglycinate 25-50mg with Vitamin C | โ Passed |
2 | Vitamin D | 50-70 ng/ml | 4000-6000 IU daily | โ Passed |
3 | Vitamin B12 | >100 pmol/l | 1000 mcg daily sublingual | โ Passed |
4 | Zinc | 6-7 mg/l | 15-30 mg daily | โ Passed |
5 | Magnesium | 0.85-1.0 mmol/l | 300-600 mg daily | โ Passed |
6 | Omega-3 Index | >8% | 2-4g EPA/DHA daily | โ Passed |
7 | Testosterone | Men: 8-30 pg/ml | Vitamin D, zinc, magnesium | โ Passed |
8 | Estradiol | Men: 20-25 pg/ml | DIM, calcium-d-glucarate | โ Passed |
9 | hs-CRP | <1.0 mg/L | Omega-3, curcumin, resveratrol | โ Passed |
10 | Zonulin | <30 ng/ml | L-glutamine, zinc carnosine | โ Passed |
11 | Vitamin C | 10-20 mg/l | 500-1000mg daily | โ Passed |
12 | Vitamin E | 16-25 mg/l | 200-400 IU mixed tocopherols | โ Passed |
13 | HbA1c | <5.6% | Chromium, alpha-lipoic acid | โ Passed |
14 | Triglycerides | <120 mg/dl | Omega-3, niacin, fiber | โ Passed |
15 | TSH | 0.5-2.0 mIU/l | Iodine, selenium, tyrosine | โ Passed |
16 | Folate | >20 ng/ml RBC | 5-MTHF (methylfolate) | โ Passed |
17 | Selenium | 120-150 ยตg/l | 200 mcg daily | โ Passed |
โ Summary
All 37 integration tests passed successfully, demonstrating:
Robust health monitoring
Proper SSE protocol implementation
Comprehensive error handling
Strong security measures against common attacks
Excellent performance with sub-2ms response times
RAG system readiness for medical knowledge queries
Complete coverage of all blood test reference values
Evidence-based supplement recommendations
The server is production-ready with all security measures in place, optimal performance characteristics, and comprehensive knowledge of blood test parameters and supplementation guidance.
Deployment
Railway (Production)
The application is deployed on Railway:
Connect Repository
Connect GitHub repository to Railway
Auto-deploys on push to main branch
Environment Variables
PORT=8000 ENV=production PDF_DIRECTORY=/app/resources/books INDEX_DIRECTORY=/app/faiss_index INDEX_NAME=supplement-therapyMonitoring
Health check: https://supplement-therapy.up.railway.app/health
View logs in Railway dashboard
Current endpoint: https://supplement-therapy.up.railway.app
New endpoint (pending): https://bloodtest-mcp.up.railway.app
Docker
# Build and run with Docker
docker build -t bloodtest-mcp-server -f Dockerfile.optimized .
docker run -p 8000:8000 bloodtest-mcp-server
# Or use Docker Compose
docker-compose up --buildProject Structure
bloodtest-mcp-server/
โโโ bloodtest_tools/ # Core blood test functionality
โ โโโ api.py # FastAPI endpoints
โ โโโ reference_values.py # Medical reference ranges
โ โโโ mcp_tool.py # MCP tool wrappers
โโโ utils/ # Utility modules
โ โโโ rag_system.py # FAISS RAG implementation
โ โโโ sequential_thinking.py # Reasoning tool
โโโ resources/ # Configuration and books
โ โโโ structure.yaml # Workflow definitions
โ โโโ books/ # PDF medical texts
โโโ scripts/ # Utility scripts
โ โโโ init_rag.py # RAG initialization
โโโ tests/ # Test suite
โโโ server.py # Main MCP server
โโโ integrated_server.py # Combined MCP + API server
โโโ main.py # FastAPI entry pointAdvanced Topics
RAG System Architecture
Document Processing
PDFs are split into chunks (1000 chars with 200 overlap)
Text embedded using sentence-transformers
Vectors stored in FAISS index
Query Flow
User query is embedded
Top-k similar documents retrieved
Context passed to LLM for response generation
Configuration
rag: enabled: true config: index_name: "supplement-therapy" index_directory: "./faiss_index" chunk_size: 1000 chunk_overlap: 200
Workflow Configuration
Workflows are defined in resources/structure.yaml:
workflows:
- name: "Supplement Therapy"
description: "Personalized supplement recommendations"
prompt: |
Based on the blood test results and health assessment,
provide evidence-based supplement recommendations...Troubleshooting
Common Issues
FAISS Index Not Found
Ensure INDEX_NAME in environment matches structure.yaml
Run
python scripts/init_rag.pyto create index
Connection Issues with Claude Desktop
Verify server is running: check /health endpoint
Ensure configuration JSON is valid
Restart Claude Desktop completely
Docker Build Failures
Check Python version compatibility
Ensure all files are included in build context
Verify FAISS index exists in Docker image
Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License. See LICENSE file for details.
Acknowledgments
Medical reference values based on work by Dr. Ulrich Strunz and Dr. Helena Orfanos-Boeckel
Built with FastMCP, FastAPI, and LangChain
Deployed on Railway cloud platform
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/longevitycoach/bloodtest-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server