Vyapar MCP服务器
Vyapar MSME业务管理应用程序的模型上下文协议(MCP)服务器。该服务器提供36个基于人工智能的工具,用于管理库存、发票、付款、客户等。
实时服务器
生产URL: https://mcp.felon.in
特性
库存管理
- 获取、创建和更新产品
- 库存管理(加、减、置)
- 具有阈值配置的低库存警报
- 条形码/HSN码支持
- 产品的印地语名称支持
发票生成
- 创建发票、报价单、形式发票、交货时间表
- 自动GST计算(CGST/SGST/IGST)
- 使用UPI二维码生成PDF
- 发票号码自动生成
- 多付款状态跟踪
UPI付款
- 生成UPI支付二维码(符合NPCI标准)
- 解析UPI QR字符串
- 验证UPI ID
- 支持所有主要的UPI应用程序
WhatsApp集成
- 通过WhatsApp共享发票
- 带有UPI深度链接的付款提醒
- 订单确认
- 向供应商发出低库存警报
分析和报告
- 每日业务报告
- 销售分析(周/月/年)
- 按类型分列的付款明细
- 顶级产品分析
- 未付款项跟踪
商品及服务税计算
- 计算CGST/SGST/IGST
- 反向商品及服务税计算(从含税总额开始)
- 按类别划分的商品及服务税税率建议
- GSTIN验证与状态提取
客户与供应商管理
- 客户CRUD操作
- 未清余额跟踪
- 信用额度管理
- 有付款条件的供应商管理
安装
npm install
npm run build配置
创建 .env 文件基于 .env.example:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-key
PORT=3000
MCP_HTTP_MODE=true跑步
开发(STDIO模式)
npm run dev生产(HTTP模式)
npm start或者使用显式HTTP模式:
MCP_HTTP_MODE=true npm start部署
此服务器已配置为使用Nixpack进行部署。只需推送到您的托管提供商(Railway、Render等),它就会自动构建和部署。
这 nixpacks.toml 该文件包括PDF生成和图像处理所需的所有系统依赖项。
API端点(HTTP模式)
| 方法 | 端点 | 身份验证 | 描述 |
|---|---|---|---|
| 得到 | / | 否 | 具有服务器状态的登录页面 |
| 得到 | /health | 否 | 健康检查 |
| 得到 | /mcp/tools | 否 | 列出所有可用工具 |
| 职位 | /mcp/tools/call | 是 | 调用工具 |
| 得到 | /mcp/me | 是 | 获取当前用户信息 |
认证
所有经过身份验证的端点都需要在Authorization标头中使用有效的Supabase JWT令牌:
Authorization: Bearer 完整工具参考(36个工具)
库存工具(5)
get_products
获取带有筛选选项的产品/库存项目列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| category | string | 否 | 按类别筛选 |
| search | string | 否 | 搜索词 |
| low_stock_only | boolean | 否 | 仅显示低库存商品 |
| limit | number | No | 最大结果(默认值:50) |
get_product
通过ID获取特定产品的详细信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| product_id | string | 是 | 产品id |
create_product
将新产品添加到库存中。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| name | string | Yes | 产品名称 |
| hindi_name | string | 否 | 印地语名称 |
| category | string | 是 | 产品类别 |
| 价格 | 数量 | 是 | 售价 |
| cost_price | 数量 | 否 | 成本价 |
| 数量 | 数量 | 是 | 当前库存 |
| unit | string | No | 单位(默认:个) |
| low_stock_threshold | number | No | 警报阈值(默认值:10) |
| 条形码 | 字符串 | 否 | 条形码编号 |
| hsn_code | 字符串 | 否 | hsn/SAC代码 |
| gst_rate | number | No | 商品及服务税税率(默认值:18) |
update_stock
更新产品的库存数量。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| product_id | string | 是 | 产品id |
| 数量 | 数字 | 是 | 要加/减/设置的金额 |
| 操作 | 字符串 | 是 | “加”、“减”或“设置” |
get_inventory_alerts
获取库存不足或缺货的产品列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
______________________________________________________________________
客户工具(4)
get_customers
获取具有搜索功能的客户列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| search | string | 否 | 按姓名或电话搜索 |
| limit | number | No | 最大结果(默认值:50) |
get_customer
获取特定客户的详细信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| customer_id | string | 是 | 客户id |
create_customer
添加新客户。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| name | string | Yes | 客户名称 |
| phone | string | Yes | 电话号码 |
| string | 否 | 电子邮件地址 | |
| 地址 | 字符串 | 否 | 地址 |
| gst_number | string | No | 客户GSTIN |
| credit_limit | number | No | 信用额度金额 |
update_customer_balance
更新客户的未清余额。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| customer_id | string | 是 | 客户id |
| 金额 | 数字 | 是 | 要加/减的金额 |
| 操作 | 字符串 | 是 | “加”或“减” |
______________________________________________________________________
交易工具(2)
get_transactions
使用筛选器获取交易列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| start_date | string | 否 | 开始日期(ISO格式) |
| end_date | string | 否 | 结束日期(ISO格式) |
| payment_type | string | No | 现金/upi/信用卡/银行转账/支票 |
| status | string | No | 待定/已完成/失败/已退款 |
| customer_id | string | 否 | 按客户筛选 |
| limit | number | No | 最大结果(默认值:50) |
create_transaction
记录新的付款/交易。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| 金额 | 数字 | 是 | 交易金额 |
| payment_type | string | Yes | 现金/upi/信用卡/银行转账/支票 |
| customer_id | 字符串 | 否 | 客户id |
| invoice_id | 字符串 | 否 | 相关发票id |
| payment_status | string | No | 待定/已完成/失败(默认:已完成) |
| upi_transaction_id | 字符串 | 否 | upi参考id |
| 备注 | 字符串 | 否 | 交易备注 |
______________________________________________________________________
发票工具(5)
get_invoices
使用筛选器获取发票/报价列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| 状态 | 字符串 | 否 | 草稿/已发送/已支付/部分/逾期/已取消 |
| type | string | No | 发票/报价单/形式/交货_查兰 |
| customer_id | string | 否 | 按客户筛选 |
| start_date | string | 否 | 开始日期 |
| end_date | string | 否 | 结束日期 |
| limit | number | No | 最大结果(默认值:50) |
get_invoice
获取特定发票的详细信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| invoice_id | string | 是 | 发票id |
create_invoice
使用行项目创建新的发票或报价单。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| items | array | Yes | 行项目数组(见下文) |
| customer_id | 字符串 | 否 | 客户id |
| invoice_type | string | No | 发票/报价单/形式/交货_challan |
| 折扣_金额 | 数量 | 否 | 折扣金额 |
| discount_type | 字符串 | 否 | 百分比/固定 |
| due_date | string | 否 | 付款到期日 |
| 备注 | 字符串 | 否 | 发票备注 |
| terms | string | 否 | 条款和条件 |
行项目架构:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
| name | string | Yes | 项目名称 |
| 数量 | 数字 | 是 | 数量 |
| unit_price | 数量 | 是 | 单位价格 |
| product_id | string | 否 | 链接到产品 |
| description | string | 否 | 项目描述 |
| unit | string | No | 单位(默认:个) |
| 折扣 | 数量 | 否 | 商品折扣% |
| gst_rate | number | No | 商品及服务税税率(默认值:18) |
update_invoice_status
更新发票的状态。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| invoice_id | string | 是 | 发票id |
| 状态 | 字符串 | 是 | 草稿/已发送/已支付/部分/逾期/已取消 |
generate_invoice_pdf
为发票生成PDF。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| invoice_id | string | 是 | 发票id |
| include_qr | boolean | 否 | 包含UPI二维码(默认值:true) |
退货: Base64编码的PDF、文件名和内容类型。
______________________________________________________________________
UPI/支付工具(3)
generate_upi_qr
生成用于接收付款的UPI支付二维码。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| payee_upi_id | 字符串 | 是 | upi id(例如。,shop@upi) |
| 收款人名称 | 字符串 | 是 | 收款人/店铺名称 |
| 金额 | 数字 | 是 | 要接收的金额 |
| transaction_note | string | 否 | 付款说明 |
| transaction_ref | string | No | 引用(发票号) |
退货: QR图像为base64、UPI深度链接和UPI字符串。
parse_upi_qr
解析UPI二维码字符串并提取付款详细信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| qr_string | string | 是 | UPI qr string(upi://pay?...) |
退货: 解析的详细信息(收款人UPI ID、姓名、金额等)
validate_upi_id
验证UPI ID的格式是否正确。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| upi_d | string | 是 | 要验证的upi id |
退货: UPI ID和验证结果。
______________________________________________________________________
WhatsApp工具(4)
share_invoice_whatsapp
准备发票以便通过WhatsApp共享。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| invoice_id | string | 是 | 发票id |
| phone | string | Yes | 客户电话号码 |
| include_image | boolean | 否 | 包括发票图像(默认值:true) |
退货: 格式化消息和WhatsApp深度链接。
send_payment_reminder
为WhatsApp准备付款提醒消息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| customer_name | string | 是 | 客户名称 |
| 发票编号 | 字符串 | 是 | 发票编号 |
| 金额 | 数字 | 是 | 未付金额 |
| phone | string | Yes | 客户电话 |
| due_date | string | 否 | 付款到期日 |
| upi_d | string | 否 | 您的付款upi id |
send_order_confirmation
为WhatsApp准备订单确认消息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| customer_name | string | 是 | 客户名称 |
| order_number | string | Yes | 订单/发票号 |
| items | 数组 | 是 | 项目数组 |
| 总数 | 数量 | 是 | 订单总数 |
| phone | string | Yes | 客户电话 |
| delivery_date | string | 否 | 预计交货日期 |
send_low_stock_alert
通过WhatsApp为供应商准备一条低库存再订购消息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| supplier_name | string | 是 | 供应商名称 |
| items | array | Yes | 要重新排序的项目数组 |
| phone | string | Yes | 供应商电话 |
______________________________________________________________________
GST工具(4)
calculate_gst
计算给定金额的商品及服务税(CGST/SGST或IGST)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| base_amount | number | Yes | 消费税前金额 |
| gst税率 | 数字 | 是 | gst税率(例如18) |
| is_interstate | boolean | 否 | 州际交易?(默认值:false) |
退货: 基本金额、商品及服务税明细(CGST/SGST或IGST)、总额和格式化文本。
calculate_gst_inclusive
根据含GST的总额计算基础金额。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 总计_金额 | 数量 | 是 | 总计(含消费税) |
| gst_rate | 数字 | 是 | gst税率 |
退货: 基本金额、商品及服务税金额和总额。
suggest_gst_rate
为某一产品类别建议适当的商品及服务税税率。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| category | string | 是 | 产品类别 |
退货: 类别和建议的商品及服务税税率。
validate_gstin
验证GSTIN格式并提取状态信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| gstin | string | Yes | 要验证的gstin |
退货: GSTIN、有效性状态和状态(如果有效)。
______________________________________________________________________
分析工具(4)
get_daily_report
获取每日业务报告,包括销售、交易、费用和顶级产品。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| date | string | Yes | date(YYYY-MM-DD格式) |
退货: 收入、订单数、支出、顶级产品、付款明细。
get_sales_analytics
获取一段时间的销售分析。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| period | string | Yes | “周”、“月”或“年” |
退货: 收入趋势、付款明细、增长百分比、顶级产品。
get_business_summary
获取整体业务摘要。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
退货: 总产品、客户、收入、交易、发票、未付金额、库存价值。
get_outstanding_payments
获取未付款客户列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
退货: 按未清余额排序的客户数组。
______________________________________________________________________
费用工具(2)
get_expenses
获取业务费用清单。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| category | string | 否 | 按类别筛选 |
| start_date | string | 否 | 开始日期 |
| end_date | string | 否 | 结束日期 |
| limit | number | No | 最大结果(默认值:50) |
create_expense
记录新的业务支出。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| category | string | Yes | 支出类别 |
| 金额 | 数字 | 是 | 费用金额 |
| description | 字符串 | 是 | 描述 |
| payment_type | string | Yes | 现金/upi/银行转账/支票 |
| 日期 | 字符串 | 是 | 日期(YYYY-MM-DD) |
______________________________________________________________________
供应商工具(2)
get_suppliers
获取供应商列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| search | string | 否 | 搜索词 |
| limit | number | No | 最大结果(默认值:50) |
create_supplier
添加新供应商。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| name | string | Yes | 供应商名称 |
| phone | string | Yes | 电话号码 |
| company_name | string | 否 | 公司名称 |
| string | 否 | 电子邮件地址 | |
| 地址 | 字符串 | 否 | 地址 |
| gst_number | string | No | 供应商GSTIN |
| payment_terms | string | 否 | 付款条件 |
______________________________________________________________________
用户工具(2)
get_user
获取用户/店铺资料详细信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
update_user
更新用户/店铺资料。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | string | 是 | 用户id |
| name | string | 否 | 所有者名称 |
| shop_name | string | 否 | 店铺/企业名称 |
| upi_d | string | 否 | 付款的upi id |
| phone | string | 否 | 电话号码 |
| string | 否 | 电子邮件地址 | |
| 地址 | 字符串 | 否 | 营业地址 |
| gst_number | string | 否 | GSTIN |
| language | string | 否 | “en”、“hi”或“中式英语” |
______________________________________________________________________
Supabase架构
服务器需要Supabase中的以下表:
| 表 | 说明 |
|---|---|
users | 用户/店铺资料 |
products | 库存物品 |
customers | 客户记录 |
transactions | 付款记录 |
invoices | 发票/报价记录 |
expenses | 业务费用 |
suppliers | 供应商记录 |
请参阅 types/index.ts 文件以获取详细的模式定义。
示例用法
生成UPI二维码
curl -X POST https://mcp.felon.in/mcp/tools/call \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SUPABASE_TOKEN" \
-d '{
"name": "generate_upi_qr",
"arguments": {
"payee_upi_id": "myshop@upi",
"payee_name": "My Shop",
"amount": 500,
"transaction_note": "Invoice #1234"
}
}'创建发票
curl -X POST https://mcp.felon.in/mcp/tools/call \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SUPABASE_TOKEN" \
-d '{
"name": "create_invoice",
"arguments": {
"user_id": "your-user-id",
"items": [
{
"name": "Product A",
"quantity": 2,
"unit_price": 500,
"gst_rate": 18
}
],
"customer_id": "customer-id"
}
}'获取每日报告
curl -X POST https://mcp.felon.in/mcp/tools/call \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SUPABASE_TOKEN" \
-d '{
"name": "get_daily_report",
"arguments": {
"user_id": "your-user-id",
"date": "2024-01-26"
}
}'安全
- 所有工具调用都需要Supabase JWT身份验证
- 用户只能访问自己的数据(强制服务器端)
- 实行费率限制以防止滥用
- CORS已为移动应用程序源配置
许可证
麻省理工学院
