fulfil-mcp
MCP server for Fulfil.io ERP with 29 tools for inventory, orders, shipments, customers, purchasing, returns, warehouse operations, and analytics. Integrates with Claude Desktop and other MCP clients via Fulfil.io REST API v2.
README
fulfil-mcp
MCP server for Fulfil.io ERP -- 29 tools for inventory management, order processing, shipment tracking, customer lookup, purchasing, returns, warehouse operations, and business analytics.
Built on the Model Context Protocol for seamless integration with Claude Desktop, Claude Code, and any MCP-compatible client. Connects to Fulfil.io's REST API v2 with automatic retries, exponential backoff, and rate-limit handling.
Tools (29)
Inventory (5 tools)
| Tool | Description |
|---|---|
list_products |
Search products by name, SKU, or category with pagination |
get_product |
Detailed product info -- pricing, weight, categories, availability |
check_inventory |
Stock levels: on-hand, available, forecast, recent movements |
low_stock_alert |
Products at or below a reorder threshold |
inventory_by_location |
Stock breakdown across warehouse locations |
Orders (5 tools)
| Tool | Description |
|---|---|
list_orders |
Search orders by status, customer, date range |
get_order |
Full order details -- line items, amounts, shipping, payment |
order_status |
Shipment and fulfillment tracking with carrier info |
delayed_orders |
Orders not shipped within N days (fulfillment bottlenecks) |
recent_orders |
Latest N orders by creation date |
Shipments (2 tools)
| Tool | Description |
|---|---|
list_shipments |
Search outbound shipments by status, date, carrier |
shipment_exceptions |
Overdue and exception-state shipments |
Customers (2 tools)
| Tool | Description |
|---|---|
search_customers |
Find customers by name, email, or phone |
customer_order_history |
Full order history with lifetime spend |
Analytics (3 tools)
| Tool | Description |
|---|---|
sales_summary |
Revenue, AOV, tax, and state breakdowns for a date range |
top_products |
Best sellers ranked by revenue |
inventory_valuation |
Total inventory value (quantity x cost price) |
Purchasing (4 tools)
| Tool | Description |
|---|---|
list_purchase_orders |
Search POs by status, supplier, date range |
get_purchase_order |
PO details -- line items, delivery dates, supplier info |
overdue_purchase_orders |
POs past expected delivery that aren't fully received |
create_purchase_order_draft |
Create a draft PO with products, quantities, and pricing |
Returns (3 tools)
| Tool | Description |
|---|---|
list_returns |
Search returns by status, date, reason |
get_return |
Return details -- items, quantities, refund value, reason |
return_rate_report |
Return rates and most-returned products for a date range |
Warehouse (4 tools)
| Tool | Description |
|---|---|
list_warehouses |
All warehouses with addresses, zones, and active status |
warehouse_utilization |
Active SKUs, units on hand, available vs reserved stock |
pending_receipts |
Inbound shipments expected at warehouses with overdue flags |
pick_list |
Consolidated pick list grouped by product and location |
Operations (1 tool)
| Tool | Description |
|---|---|
daily_ops_briefing |
Morning ops summary: orders, fulfillment, shipments, low stock, exceptions |
Quick Start
Install
git clone https://github.com/ExpertVagabond/fulfil-mcp.git
cd fulfil-mcp
npm install
npm run build
Configure Credentials
Set environment variables:
export FULFIL_API_KEY="your-fulfil-api-key"
export FULFIL_SUBDOMAIN="your-tenant-subdomain"
Or use credential files:
mkdir -p ~/.fulfil-mcp
echo "your-fulfil-api-key" > ~/.fulfil-mcp/api-key
echo "your-tenant-subdomain" > ~/.fulfil-mcp/subdomain
chmod 600 ~/.fulfil-mcp/*
Run
# Direct
FULFIL_API_KEY=xxx FULFIL_SUBDOMAIN=yyy node dist/index.js
# Via wrapper (reads from env or credential files)
./fulfil-mcp-wrapper.sh
Claude Desktop Configuration
Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"fulfil": {
"command": "node",
"args": ["/path/to/fulfil-mcp/dist/index.js"],
"env": {
"FULFIL_API_KEY": "your-api-key",
"FULFIL_SUBDOMAIN": "your-tenant"
}
}
}
}
Claude Code Configuration
Add to ~/.mcp.json:
{
"mcpServers": {
"fulfil": {
"command": "/path/to/fulfil-mcp/fulfil-mcp-wrapper.sh",
"env": {
"FULFIL_API_KEY": "your-api-key",
"FULFIL_SUBDOMAIN": "your-tenant"
}
}
}
}
Usage Examples
Once connected, ask Claude natural-language questions and it will call the appropriate tools:
Inventory
"Which products are below 10 units in stock?" "Show me the stock breakdown for product 4521 across all warehouses."
Orders
"List all orders from the last 7 days that haven't shipped yet." "Get the full details for order 18923."
Operations
"Give me the daily ops briefing." "Are there any shipment exceptions I should know about?"
Purchasing
"Show overdue purchase orders from our suppliers." "Create a draft PO for supplier 312 with 500 units of product 891."
Analytics
"What were our top 10 products by revenue last month?" "Generate a sales summary for Q4 2025."
Returns
"What's our return rate for the past 90 days?" "Which products have the highest return rates?"
Warehouse
"List all warehouses and their utilization." "Generate a pick list for the main warehouse."
Architecture
src/
index.ts MCP server setup + 29 tool registrations
api.ts Fulfil.io REST client (retries, rate-limits, backoff)
tools/
inventory.ts Product search, stock levels, low stock alerts
orders.ts Sales orders, fulfillment status, delayed orders
shipments.ts Outbound shipments, exceptions
customers.ts Customer search, order history
analytics.ts Sales summaries, top products, valuations
operations.ts Daily ops briefing
purchasing.ts Purchase orders, overdue POs, draft creation
returns.ts Returns, return rate reports
warehouse.ts Warehouse listing, utilization, receipts, pick lists
API Client
The FulfilClient class handles all communication with the Fulfil.io REST API v2:
- Automatic retries with exponential backoff on 5xx errors and network failures
- Rate-limit handling with
Retry-Afterheader support - Tryton-style domain filters for flexible record queries
- Singleton pattern -- one client instance per server lifecycle
Fulfil.io API Reference
| Endpoint | Method | Description |
|---|---|---|
/model/{model} |
PUT |
Search records with domain filters |
/model/{model}/{id} |
GET |
Read a single record by ID |
/model/{model}/read |
POST |
Read multiple records by ID array |
Key models: product.product, product.template, sale.sale, sale.line, stock.shipment.out, stock.shipment.in, stock.move, stock.location, party.party, purchase.purchase, purchase.line
Development
# Watch mode (recompile on change)
npm run dev
# Build
npm run build
# Run
npm start
Requirements
- Node.js >= 18
- TypeScript 5.3+
- A Fulfil.io account with API access
Contributing
Contributions are welcome. To add a new tool:
- Create or extend a file in
src/tools/with the tool implementation - Export the handler function from that file
- Register the tool in
src/index.tswith a Zod schema and description - Run
npm run buildto verify compilation - Open a pull request
Please keep tool descriptions clear and specific -- they serve as documentation for both humans and AI models.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。