SYSPRO-MCP

duppie-duplessis-SYSPRO/SYSPRO-MCP

3.2

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.

Tools
10
Resources
0
Prompts
0

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).

  1. Open SQL Server Management Studio (SSMS)
  2. Connect to your SYSPRO SQL Server instance
  3. Select the system-wide SYSPRO configuration database
  4. Open and execute SetupSearchEntity.sql from 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

ToolDescription
syspro_list_business_objectsList and search available SYSPRO business objects by module or keyword
syspro_get_business_object_detailsGet detailed info and sample XML for a specific business object
syspro_search_entitySearch for entities by name (customers, suppliers, stock codes, etc.)
syspro_query_setup_optionsQuery setup/configuration options for a module (auto-finds QSO business objects)
syspro_queryQuery data using any SYSPRO Query business object
syspro_setup_addAdd new records using Setup business objects
syspro_setup_updateUpdate existing records
syspro_setup_deleteDelete records
syspro_transaction_post_ldPost large transactions (avoids URL length limits)
syspro_configureConfigure 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 ObjectPurposeOperations
INVQRYInventory QueryQuery
INVSWSInventory MasterAdd, Update, Delete
ARSCUSCustomer QueryQuery
ARSTORCustomer MasterAdd, Update, Delete
SORQRYSales Order QueryQuery
SORTOISales Order EntryPost
PORQRYPurchase Order QueryQuery
PORTOIPurchase Order EntryPost
APSSUPSupplier QueryQuery

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_objects to 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.