I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

Medifinder-MCP
Serveur de protocole de communication de messages (MCP) qui facilite la communication standardisée sécurisée entre les composants du système et la base de données des stocks de médicaments. Fournit des points de terminaison reposants pour les recherches de médecine basées sur la localisation, les requêtes de disponibilité et la messagerie optimisée pour l'intégration WhatsApp.
3 years
Works with Finder
1
Github Watches
1
Github Forks
0
Github Stars
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
-
Clone the repository:
git clone https://github.com/yourusername/medifinder-mcp.git cd medifinder-mcp
-
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
-
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
-
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
-
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:
-
Install MCP CLI:
pip install mcp[cli]
-
Run the server in development mode:
python -m mcp dev main.py
-
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:
-
Create a batch file for reliable startup (run-mcp-server.bat):
@echo off cd /d %~dp0 call venv\Scripts\activate.bat python main.py
-
Install the server in Claude Desktop:
mcp install run-mcp-server.bat -f .env
-
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" } } } }
-
In Claude Desktop, select the MedifinderMCP server from the servers dropdown to enable it for your conversation.
Troubleshooting
Common Issues
-
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
- Use the
-
Missing Tables:
- Use the
create_database_schema
tool to create the database tables - Check logs for any errors during schema creation
- Use the
-
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
-
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
-
Missing Dependencies:
- Run
pip install -r requirements.txt
to ensure all dependencies are installed - Common missing dependencies are: mcp, python-dotenv, psycopg2-binary
- Run
Diagnostic Tools
When troubleshooting, use these built-in diagnostic tools:
-
diagnose_database
: Checks if:- The database connection works
- Tables exist
- Tables contain data
-
troubleshoot_connection
: Provides detailed information about:- Database connection settings
- Connection errors
- Table structure
- Recommended fixes
-
create_database_schema
: Creates the database tables and provides:- List of created tables
- Any errors that occurred
- Test record creation results
License
Contributors
- Lenin Carrasco - Initial work
相关推荐
Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.
Confidential guide on numerology and astrology, based of GG33 Public information
A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.
Advanced software engineer GPT that excels through nailing the basics.
Therapist adept at identifying core issues and offering practical advice with images.
Découvrez la collection la plus complète et la plus à jour de serveurs MCP sur le marché. Ce référentiel sert de centre centralisé, offrant un vaste catalogue de serveurs MCP open-source et propriétaires, avec des fonctionnalités, des liens de documentation et des contributeurs.
Manipulation basée sur Micropython I2C de l'exposition GPIO de la série MCP, dérivée d'Adafruit_MCP230XX
Une passerelle API unifiée pour intégrer plusieurs API d'explorateur de blockchain de type étherscan avec la prise en charge du protocole de contexte modèle (MCP) pour les assistants d'IA.
Miroir dehttps: //github.com/bitrefill/bitrefill-mcp-server
MCP Server pour récupérer le contenu de la page Web à l'aide du navigateur sans tête du dramwright.
Reviews

user_CvbgpAvd
As a loyal user of the medifinder-mcp application, I can confidently say this is a game-changer for medical product searches. The intuitive interface and precise search capabilities save me so much time and effort. The robust design by MediFinderBot ensures reliability. Highly recommended for anyone in the healthcare industry! Check it out at https://github.com/MediFinderBot/medifinder-mcp.