Navigation
MedifinderMCP Server: Secure Messaging & Inventory Coordination - MCP Implementation

MedifinderMCP Server: Secure Messaging & Inventory Coordination

MedifinderMCP Server streamlines secure, standardized messaging between systems and medicine databases, offering RESTful APIs for location-based searches, stock checks, and WhatsApp integration—simplifying inventory coordination.

Research And Data
4.4(167 reviews)
250 saves
116 comments

Users create an average of 30 projects per month with this tool

About MedifinderMCP Server

What is MedifinderMCP Server: Secure Messaging & Inventory Coordination?

MedifinderMCP Server is a dedicated middleware solution designed to facilitate secure communication and real-time inventory management across healthcare networks. Built on PostgreSQL, it provides a robust framework for integrating AI assistants like Claude Desktop with enterprise resource systems. The server enables hospitals, pharmacies, and logistics providers to synchronize critical data through standardized APIs while maintaining strict data governance protocols.

How to use MedifinderMCP Server: Secure Messaging & Inventory Coordination?

Deployment follows a modular approach:
1. Configure database credentials via environment variables
2. Initialize schema structures using built-in creation tools
3. Integrate with AI platforms through CLI adapters
4. Monitor operations via the MCP Inspector dashboard
Detailed guides include step-by-step instructions for configuring secure WebSocket connections and troubleshooting data sync issues.

MedifinderMCP Server Features

Key Features of MedifinderMCP Server: Secure Messaging & Inventory Coordination?

  • Encrypted data pipelines with audit logging
  • Automated schema validation during deployments
  • Diagnostic modules for real-time system health checks
  • Role-based access controls for inventory datasets
  • Cross-platform compatibility with major AI development frameworks

Use cases of MedifinderMCP Server: Secure Messaging & Inventory Coordination?

Primary applications include:
- Emergency supply chain coordination during outbreaks
- Prescription drug availability verification networks
- Multi-hospital inventory balancing systems
- Regulated medical device tracking with compliance reporting
The server's modular architecture allows customization for specific healthcare workflows without compromising security standards.

MedifinderMCP Server FAQ

FAQ from MedifinderMCP Server: Secure Messaging & Inventory Coordination?

Q: How is data security ensured?
All communications use TLS 1.3 encryption with automatic certificate management. Sensitive credentials are stored in encrypted vaults separate from operational databases.

Q: What databases are supported?
PostgreSQL 13+ with planned extensions for SQLite (development use) and AWS RDS compatibility.

Q: Can I customize message formats?
Yes, through JSON schema definitions in the configuration directory while maintaining core protocol compliance.

Content

MedifinderMCP Server

An MCP (Model Context Protocol) server for medicine inventory queries, designed to work with AI assistants like Claude.

Overview

The MedifinderMCP Server provides tools and resources for querying a medicine inventory database through the Model Context Protocol (MCP). It allows AI assistants and other clients to:

  • Search for medicines by name or location
  • Check medicine availability at different healthcare facilities
  • Get stock information for specific medicines
  • View statistics on medicine availability by region
  • Analyze stock status across the healthcare system

Database Schema

The application uses a normalized database schema:

Region
  - region_id (PK)
  - name
  - code
  - created_at
  - updated_at

MedicalCenter
  - center_id (PK)
  - code
  - name
  - region_id (FK -> Region)
  - category
  - reporter_name
  - institution_type
  - reporter_type
  - address
  - latitude
  - longitude
  - created_at
  - updated_at

ProductType
  - type_id (PK)
  - code
  - name
  - description
  - created_at
  - updated_at

Product
  - product_id (PK)
  - code
  - name
  - type_id (FK -> ProductType)
  - description
  - dosage_form
  - strength
  - created_at
  - updated_at

Inventory
  - inventory_id (PK)
  - center_id (FK -> MedicalCenter)
  - product_id (FK -> Product)
  - current_stock
  - avg_monthly_consumption
  - accumulated_consumption_4m
  - measurement
  - last_month_consumption
  - last_month_stock
  - status_indicator
  - cpma_12_months_ago
  - cpma_24_months_ago
  - cpma_36_months_ago
  - accumulated_consumption_12m
  - report_date
  - status
  - created_at
  - updated_at

User
  - user_id (PK)
  - phone_number
  - name
  - preferred_location
  - created_at
  - updated_at

SearchHistory
  - search_id (PK)
  - user_id (FK -> User)
  - product_query
  - location_query
  - search_radius
  - results_count
  - created_at

Project Structure

medifinder-mcp/
├── app/
│   ├── __init__.py
│   ├── config.py            # Configuration management
│   ├── db/
│   │   ├── __init__.py
│   │   ├── connection.py    # Database connection handling
│   │   └── queries.py       # SQL queries
│   ├── models/
│   │   ├── __init__.py
│   │   ├── base.py          # Base model with timestamp fields
│   │   ├── region.py        # Region model
│   │   ├── medical_center.py # Medical center model
│   │   ├── product_type.py  # Product type model
│   │   ├── product.py       # Product model
│   │   ├── inventory.py     # Inventory model
│   │   ├── user.py          # User model
│   │   └── search_history.py # Search history model
│   ├── mcp/
│   │   ├── __init__.py
│   │   ├── server.py        # MCP server setup
│   │   ├── tools.py         # Tool implementations
│   │   ├── resources.py     # Resource implementations
│   │   └── prompts.py       # Prompt templates
│   └── utils/
│       ├── __init__.py
│       └── helpers.py       # Helper functions
├── main.py                  # Application entry point
├── requirements.txt         # Dependencies
└── README.md                # Documentation

MCP Features

Tools

  • search_medicines: Search for medicines by name or location
  • get_medicine_locations: Find locations where a medicine is available
  • get_medicine_stock: Get stock information for a specific medicine
  • get_regional_statistics: Get medicine statistics by region
  • get_medicine_status: Get overall medicine statistics
  • diagnose_database: Check database connectivity and content
  • troubleshoot_connection: Detailed database connection diagnostics
  • create_database_schema: Create database tables based on models

Resources

  • product://{id}: Get product details by ID
  • stock://{name}: Get stock information for a product by name
  • locations://{region}: Get medical centers in a specific region
  • statistics://stock: Get overall stock statistics
  • statistics://regions: Get regional statistics

Prompts

  • medicine_search_prompt: Template for searching medicines by name
  • medicine_availability_prompt: Template for checking medicine availability
  • medicine_statistics_prompt: Template for analyzing medicine statistics
  • regional_availability_prompt: Template for analyzing regional medicine availability

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/medifinder-mcp.git

cd medifinder-mcp
  1. Create a virtual environment and install dependencies:

    python -m venv venv

source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Set up environment variables by creating a .env file:

    DB_HOST=localhost

DB_PORT=5432
DB_NAME=medifinderbot
DB_USER=your_user
DB_PASSWORD=your_password
DEBUG=True
ENV=development
SERVER_NAME=MedifinderMCP
SERVER_VERSION=1.0.0
MCP_SERVER_NAME=MedifinderMCP
MCP_SERVER_DESCRIPTION=MCP server for medicine inventory queries
MAX_SEARCH_RESULTS=50
SEARCH_SIMILARITY_THRESHOLD=0.3
  1. Create the database:

    Connect to PostgreSQL

psql -U postgres

# Create database and user
CREATE DATABASE medifinderbot;
CREATE USER your_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE medifinderbot TO your_user;

# Exit PostgreSQL
\q
  1. Initialize the database schema: After starting the server, use the create_database_schema tool to create the tables.

Usage

Running the Server Locally

You can run the MCP server directly:

python main.py

Using MCP Inspector

For development and testing, the MCP Inspector provides a convenient way to interact with the server:

  1. Install MCP CLI:

    pip install mcp[cli]

  2. Run the server in development mode:

    python -m mcp dev main.py

  3. The MCP Inspector will open in your browser, allowing you to:

* Test tools and resources
* View the output of diagnostic tools
* Experiment with different queries

Integration with Claude Desktop

To use the server with Claude Desktop:

  1. Create a batch file for reliable startup (run-mcp-server.bat):

    @echo off

cd /d %~dp0
call venv\Scripts\activate.bat
python main.py
  1. Install the server in Claude Desktop:

    mcp install run-mcp-server.bat -f .env

  2. Alternatively, edit Claude Desktop's config file manually:

    {
    "mcpServers": {
    "MedifinderMCP": {
    "command": "C:\path\to\project\venv\Scripts\python.exe",
    "args": ["C:\path\to\project\main.py"],
    "env": {
    "DB_HOST": "localhost",
    "DB_PORT": "5432",
    "DB_NAME": "medifinderbot",
    "DB_USER": "your_user",
    "DB_PASSWORD": "your_password",
    "DEBUG": "True",
    "ENV": "development",
    "SERVER_NAME": "MedifinderMCP",
    "SERVER_VERSION": "1.0.0",
    "MCP_SERVER_NAME": "MedifinderMCP",
    "MCP_SERVER_DESCRIPTION": "MCP server for medicine inventory queries",
    "MAX_SEARCH_RESULTS": "50",
    "SEARCH_SIMILARITY_THRESHOLD": "0.3"
    }
    }
    }

}
  1. In Claude Desktop, select the MedifinderMCP server from the servers dropdown to enable it for your conversation.

Troubleshooting

Common Issues

  1. Database Connection Issues :
* Use the `troubleshoot_connection` tool to diagnose connection problems
* Verify your database credentials in the .env file
* Ensure PostgreSQL is running on the specified port
  1. Missing Tables :
* Use the `create_database_schema` tool to create the database tables
* Check logs for any errors during schema creation
  1. Empty Results :
* If queries return no results, there might not be any data in your tables
* You need to import data into the tables using your data ingestion process
  1. Session Binding Errors :
* If you see "Instance is not bound to a Session" errors, ensure model instances are converted to dictionaries within active sessions
* See how this is handled in the queries.py file for examples
  1. Missing Dependencies :
* Run `pip install -r requirements.txt` to ensure all dependencies are installed
* Common missing dependencies are: mcp, python-dotenv, psycopg2-binary

Diagnostic Tools

When troubleshooting, use these built-in diagnostic tools:

  1. diagnose_database: Checks if:
* The database connection works
* Tables exist
* Tables contain data
  1. troubleshoot_connection: Provides detailed information about:
* Database connection settings
* Connection errors
* Table structure
* Recommended fixes
  1. create_database_schema: Creates the database tables and provides:
* List of created tables
* Any errors that occurred
* Test record creation results

License

MIT License

Contributors

  • Lenin Carrasco - Initial work

Related MCP Servers & Clients