procurement-agent-mcp

procurement-agent-mcp

MCP server that automates the procurement workflow, including RFQ generation, quote parsing, ERP item loading, and purchase requisition submission with human-in-the-loop approval gates.

Category
访问服务器

README

Agentic Procurement Workflow

Disclaimer: All data in this project is synthetic, modeled on real manufacturing scenarios. The taskboard, mail, and ERP systems are local mock services. Not affiliated with or derived from any employer's systems.

Problem

Procurement is expensive and time-consuming. In my experience, engineers routinely spend 4 or more hours per week on it — sending requests for quotes (RFQ), waiting on quotes, parsing through quotes, loading items into the ERP, creating purchase requisitions (PRQ), sending them to purchasing, waiting on confirmation, and then posting tracking information in a project management system. At a $50/hr base wage (~$70/hr burdened), that is roughly $14,000 per engineer per year, before counting the opportunity cost of an engineer not engineering. Multiply this across a department.

The process is simple and repetitive, but it is not easily automatable. Quotes come in all shapes and sizes. Items don't line up between the RFQ and the quotes that come back — Vendor A splits your line 3 into two lines, Vendor B substitutes an equivalent part without saying so, and Vendor C skips it entirely. "Compare line 3" stops having an obvious meaning. The same part also goes by several names (HHCS, hex head cap screw, hex bolt), so matching a free-text description to a catalog item number is its own problem. Lead times are never concrete. Any tool that quietly guesses at these will produce wrong answers that look right.

Procurement also cannot be fully automated, because the financial and commercial risk is real. Errors cost money or project timeline, and both are painful to unwind. For that reason this workflow uses human gates. A human verifies the agent's work before a PRQ is sent, and a human creates and sends the PO. The agent never sends a PO.

Approach

This workflow utilizes an AI agent to take care of all the tedious data entry and administrative work of the procurement process, while still keeping a human in the loop to confirm critical steps in the workflow.

  1. The human operator selects a project's item list and tells the agent to begin procurement.

  2. The agent generates RFQ emails. The email contains quantity needed, part number, description, and drawings (if applicable). It requests a quote that includes pricing and lead time. The agent sends the emails to the various vendor representatives.

  3. Upon the first vendor quote received, a configurable quote window timer begins. Once all expected quotes are returned or the timer runs out, the agent processes the quotes. If a quote is not able to be processed or items don't match up, the human operator is notified. At this point the human operator will disposition the issue. Once dispositioned, the operator can manually tell the agent what items correlate to price and lead time. Once all items are resolved, the agent creates a report for the human operator.

  4. [HUMAN GATE] The human operator then reviews the report and tells the agent which vendor's quote to use.

  5. The agent loads the resolved lines into the ERP. The item number is the key, so the agent writes only the item number, quantity, awarded vendor, cost, and lead time. The ERP's item master supplies the rest of the record. Nothing is written against a guessed item number.

  6. The agent assembles the PRQ (line items, awarded vendor, pricing, lead times, attached quotes and drawings) and submits it to purchasing. This write is guarded with an idempotency key and logged, so a retry cannot submit it twice.

  7. [HUMAN GATE] The purchasing department representative reviews the PRQ and quote. If all looks good, purchasing creates a PO, sends it to the vendor, and the ERP is populated with the PO number. The agent never creates the PO in this workflow.

  8. The agent will poll the ERP system. Once it detects that items from the PRQ had a PO created, it uploads that PO number to project management software where the human operator can keep track of order progress.

Every agent action is logged with its inputs, outputs, and a timestamp. Write operations carry an idempotency key, so re-running a step (a retry after a timeout, a reconciliation loop that fires twice) never double-posts to the ERP or re-sends an RFQ.

Architecture

An MCP server exposes the procurement workflow as a set of tools an agent can call. Behind those tools sit a SQLite state layer, a quote parsing pipeline, an item resolution step, and HTTP clients for the taskboard, mail, and ERP systems. All three backends are local mock services.

Architecture diagram and component breakdown to follow.

Demo

WIP

How to Run

Requires uv and Python 3.12 or newer.

git clone git@github.com:njsav26/procurement-agent-mcp.git
cd procurement-agent-mcp
uv sync
uv run pytest

What I Would Do Next

Known Limitations

  • Quote extraction is template driven. New vendors need new templates.
  • Edge cases are flagged for human intervention rather than handled.
  • Cannot handle scanned or image-only PDFs. There is no OCR capability.

What a Production Version Requires

  • Real authentication against the real systems
  • Logging and metrics
  • Retry logic for failed writes to the ERP
  • Access control — who can approve quotes and trigger a write

What I Would Design Differently

  • TBD after implementation

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选