duppie-duplessis-SYSPRO/SYSPRO-MCP
If you are the rightful owner of SYSPRO-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The SYSPRO e.net Solutions MCP Server is a bridge that enables AI assistants like Claude to interact with the SYSPRO ERP system through the e.net Solutions REST API.
SYSPRO e.net Solutions MCP Server
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with SYSPRO ERP system through e.net Solutions REST API.
What is this?
This MCP server acts as a bridge between Claude (or any MCP-compatible AI) and your SYSPRO ERP system. It allows you to:
- Query any data from SYSPRO using natural language
- Search for entities by name (customers, suppliers, stock items, etc.)
- Create, update, and delete records through SYSPRO Business Objects
- Discover available Business Objects and their XML schemas automatically
Quick Start
1. Clone the Repository
git clone https://github.com/duppie-duplessis-SYSPRO/SYSPRO-MCP.git
cd SYSPRO-MCP
2. Set Up Python Environment
python -m venv venv
venv\Scripts\activate # Windows
# or: source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
3. Set Up Entity Search (Required for syspro_search_entity)
To enable the entity search feature, you must run the SetupSearchEntity.sql script in your system-wide SYSPRO configuration database (typically called SysproDb or similar).
- Open SQL Server Management Studio (SSMS)
- Connect to your SYSPRO SQL Server instance
- Select the system-wide SYSPRO configuration database
- Open and execute
SetupSearchEntity.sqlfrom this repository
This creates a tile definition that enables Claude to search for customers, suppliers, stock codes, and other entities by name.
4. Configure for Claude Desktop
Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"syspro-enet": {
"command": "python",
"args": [
"C:\\path\\to\\SYSPRO-MCP\\syspro_mcp_wrapper.py"
],
"env": {
"SYSPRO_BASE_URL": "http://your-server:port/SYSPROWCFService/Rest",
"SYSPRO_OPERATOR": "ADMIN",
"SYSPRO_PASSWORD": "your-password",
"SYSPRO_COMPANY_ID": "YOUR_COMPANY",
"SYSPRO_COMPANY_PASSWORD": ""
}
}
}
}
5. Configure for Claude Code
Create a .mcp.json file in your home directory (~/.mcp.json) or project directory:
{
"mcpServers": {
"syspro-enet": {
"command": "python",
"args": [
"C:\\path\\to\\SYSPRO-MCP\\syspro_mcp_wrapper.py"
],
"env": {
"SYSPRO_BASE_URL": "http://your-server:port/SYSPROWCFService/Rest",
"SYSPRO_OPERATOR": "ADMIN",
"SYSPRO_PASSWORD": "your-password",
"SYSPRO_COMPANY_ID": "YOUR_COMPANY",
"SYSPRO_COMPANY_PASSWORD": ""
}
}
}
}
6. Restart Claude
Restart Claude Desktop or Claude Code to load the MCP server.
Available Tools
| Tool | Description |
|---|---|
syspro_list_business_objects | List and search available SYSPRO business objects by module or keyword |
syspro_get_business_object_details | Get detailed info and sample XML for a specific business object |
syspro_search_entity | Search for entities by name (customers, suppliers, stock codes, etc.) |
syspro_query_setup_options | Query setup/configuration options for a module (auto-finds QSO business objects) |
syspro_query | Query data using any SYSPRO Query business object |
syspro_setup_add | Add new records using Setup business objects |
syspro_setup_update | Update existing records |
syspro_setup_delete | Delete records |
syspro_transaction_post_ld | Post large transactions (avoids URL length limits) |
syspro_configure | Configure connection settings at runtime |
Usage Examples
Search for a Customer by Name
Ask Claude:
Find the customer code for "Bayside Bikes"
Claude will use syspro_search_entity to find the customer code, then can query full details.
Query Inventory
What's the current stock level for item A100?
List Available Business Objects
What business objects are available for Sales Orders?
Create a Sales Order
Create a new sales order for customer 0000001 with item A100, quantity 10
Query Setup Options
What are the inventory setup options?
or
Show me the AR configuration settings
Claude will automatically find and query the appropriate QSO (Query Setup Options) business objects for the requested module.
Architecture
+-------------------+
| Claude Desktop |
| or Claude Code |
+--------+----------+
| MCP Protocol (stdio)
+--------v----------+
| SYSPRO MCP |
| Server |
+--------+----------+
| REST API (HTTP/XML)
+--------v----------+
| SYSPRO e.net |
| WCF Service |
+--------+----------+
|
+--------v----------+
| SYSPRO ERP |
| Database |
+-------------------+
Project Structure
SYSPRO-MCP/
├── syspro_mcp_server.py # Main MCP server implementation
├── syspro_mcp_wrapper.py # Wrapper script for launching the server
├── syspro_business_objects.py # Business objects catalog
├── discover_business_objects.py # Tool to discover available BOs
├── business_objects_catalog.json # Cached business objects catalog
├── requirements.txt # Python dependencies
├── syspro_config.example.json # Example configuration
└── README.md # This file
Prerequisites
- Python 3.10+
- SYSPRO 8 with e.net Solutions enabled
- Access to SYSPRO WCF REST Service
- Valid SYSPRO operator credentials with e.net license
Common Business Objects
| Business Object | Purpose | Operations |
|---|---|---|
| INVQRY | Inventory Query | Query |
| INVSWS | Inventory Master | Add, Update, Delete |
| ARSCUS | Customer Query | Query |
| ARSTOR | Customer Master | Add, Update, Delete |
| SORQRY | Sales Order Query | Query |
| SORTOI | Sales Order Entry | Post |
| PORQRY | Purchase Order Query | Query |
| PORTOI | Purchase Order Entry | Post |
| APSSUP | Supplier Query | Query |
Use syspro_list_business_objects to discover all available business objects in your SYSPRO installation.
Troubleshooting
Connection Failed
- Verify SYSPRO WCF Service is running
- Check the base URL includes the correct port
- Test connectivity:
http://your-server:port/SYSPROWCFService/Rest/Logon
Authentication Failed
- Verify operator credentials
- Ensure operator has e.net Solutions license
- Check company ID is correct
Business Object Not Found
- Use
syspro_list_business_objectsto find available BOs - Business object names are case-sensitive
Security Notes
- Store credentials in environment variables, not in code
- Use HTTPS in production environments
- Create a dedicated SYSPRO operator with minimal required permissions
- Enable SYSPRO audit logging for e.net operations
Resources
License
MIT License
Disclaimer
This is an independent implementation and is not officially supported by SYSPRO. Always test thoroughly in a development environment before using in production.