McpStamp MCP Stamp Purchase Requisition MCP
A community MCP server that manages purchase requisitions as reusable step lists. It allows users to create checklists, run dated approval processes where each step is marked pass, fail, or not applicable, and sign off on completed runs to generate a plain-text record of approvals.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.zovo.one/mcp/purchase-requisitionWhat its tools do
16 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (5)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
- Popularity 2 GitHub stars
What you can do with it
- Create a reusable purchase request checklist with required steps
- Start a dated run and mark steps as pass, fail, or n/a
- Sign off on a completed requisition run to freeze the record
- Generate a text report showing checks and approver details
Source and maintenance
- Last repository push
- Latest release
- v0.22.5
- Maintenance checked
Protocol and capabilities
- Server
- mcp-purchase-requisition 0.22.8
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 16 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 2 advertised
{
"tools": {
"listChanged": true
},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
16 advertised
purchase-requisition_create — Create a purchase-requisition
Create a reusable purchase-requisition and return its CL-NNNN id: a name, a category and an optional description. Add steps with purchase-requisition_item_add. Free tier: 3 of them, runs unlimited.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "What the purchase-requisition is, e.g. Pre-delivery vehicle check or Site handover"
},
"category": {
"type": "string",
"maxLength": 60,
"description": "A grouping key, lower-cased and hyphenated, e.g. handover or safety. Default general"
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "What this purchase-requisition is for and when to run it, printed at the top of a blank copy"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}purchase-requisition_item_add — Add a step to a purchase-requisition
Add one step to a purchase-requisition and return its I01-style id: text, an optional section heading, and required flag. A required step left unanswered or failed blocks sign-off; an optional one does not.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchaseRequisition",
"text"
],
"properties": {
"note": {
"type": "string",
"maxLength": 2000,
"description": "Guidance printed under the step, e.g. the tolerance or the standard it is checked against"
},
"text": {
"type": "string",
"maxLength": 2000,
"description": "The step, as the person doing it will read it, e.g. Tyre pressures checked and recorded"
},
"section": {
"type": "string",
"maxLength": 60,
"description": "A heading to group this step under, e.g. Exterior. Steps keep the order they were added within a section"
},
"position": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Insert at this 1-based position instead of at the end. Existing steps keep their ids"
},
"required": {
"type": "boolean",
"description": "Whether sign-off is blocked while this step is unanswered or failed. Default true"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "The purchase-requisition id, e.g. CL-0001, or its name when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}purchase-requisition_item_remove — Remove a step from a purchase-requisition
Remove one step from a purchase-requisition by its I01-style id and bump the purchase-requisition version. Runs already under way keep the step they started with, so nothing anybody already ticked is rewritten.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchaseRequisition",
"item"
],
"properties": {
"item": {
"type": "string",
"maxLength": 16,
"description": "The step id, e.g. I03, as shown by purchase-requisition_show"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "The purchase-requisition id, e.g. CL-0001, or its name when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}purchase-requisition_show — Show one purchase-requisition
One purchase-requisition with its steps in order, grouped by section, plus how many are required and how many runs have been started from it. Pass as_text for a blank printable copy with a box against each step.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchaseRequisition"
],
"properties": {
"as_text": {
"type": "boolean",
"description": "Return a blank printable copy as plain text as well as the structured view. Default false"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "The purchase-requisition id, e.g. CL-0001, or its name when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}purchase-requisition_list — List purchase-requisitions
Every purchase-requisition with its category, version, step count and how many runs came from it. Filter by category or by a word in the name. Returns at most 500 rows, newest change first.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"type": "string",
"maxLength": 60,
"description": "Only purchase-requisitions in this category, matched after the same lower-case hyphenation applied on create"
},
"contains": {
"type": "string",
"maxLength": 200,
"description": "Only purchase-requisitions whose name contains this text, matched case-insensitively"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}purchase-requisition_delete — Delete a purchase-requisition
Delete a purchase-requisition and its steps for good. Runs already started keep their own copy of the steps and stay readable: deleting the purchase-requisition erases nothing anybody signed.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchaseRequisition",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true. There is no undo and nothing is copied anywhere first"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "The purchase-requisition id, e.g. CL-0001, or its name when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}run_start — Start a run of a purchase-requisition
Start a dated run of a purchase-requisition and return its RUN-YYYY-NNNN id. Steps are COPIED into the run, so editing the purchase-requisition later never changes a run under way. Runs are free, never capped.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"purchaseRequisition",
"title"
],
"properties": {
"date": {
"type": "string",
"maxLength": 10,
"description": "The day the run happened, YYYY-MM-DD. Default today"
},
"note": {
"type": "string",
"maxLength": 2000
},
"title": {
"type": "string",
"maxLength": 200,
"description": "What this run is against, e.g. Van BX21 KLM, February service"
},
"reference": {
"type": "string",
"maxLength": 64,
"description": "The job, order or asset id this run belongs to, e.g. WO-2026-0044. Named only; no sibling store is opened"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "The purchase-requisition id, e.g. CL-0001, or its name when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}run_check — Answer a step in a run
Mark one step pass, fail or na, with who did it and when. na means the step did not apply; it counts as answered and never as passed. A step can be answered again while the run is open, and the last answer stands.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run",
"item",
"state"
],
"properties": {
"at": {
"type": "string",
"maxLength": 10,
"description": "The day it was answered, YYYY-MM-DD. Default the run's own date"
},
"by": {
"type": "string",
"maxLength": 200,
"description": "Who answered it. Printed against the step on the report"
},
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
},
"item": {
"type": "string",
"maxLength": 16,
"description": "The step id, e.g. I03, as shown by run_show"
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "What was found. Say why on a fail: the report prints this under the step"
},
"state": {
"enum": [
"pending",
"pass",
"fail",
"na"
],
"type": "string",
"description": "pass, fail, na for did not apply, or pending to put the step back to unanswered"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}run_show — Show one run
The whole run: every step with its answer, who answered it and when, grouped by section, plus the pass, fail and outstanding counts, the failures in full, and whether it can be signed off and why not.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run"
],
"properties": {
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}run_list — List runs
Runs newest first, with their purchaseRequisition, progress and sign-off state. Filter by purchaseRequisition, by status, by reference or to open runs only. Returns at most 500 rows.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"status": {
"enum": [
"open",
"complete",
"signed_off",
"abandoned"
],
"type": "string",
"description": "Only runs in this status"
},
"open_only": {
"type": "boolean",
"description": "Only open and complete runs, the ones still editable. Default false"
},
"reference": {
"type": "string",
"maxLength": 64,
"description": "Only runs against this job, order or asset id, matched case-insensitively"
},
"with_failures": {
"type": "boolean",
"description": "Only runs that have at least one failed step. Default false"
},
"purchaseRequisition": {
"type": "string",
"maxLength": 200,
"description": "Only runs of this purchaseRequisition, by id or name"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}run_sign_off — Sign off a run
Sign off a completed run with a name and a date, which freezes it. Refused while a required step is unanswered or failed, unless force is true, and either way the exceptions stay on the record and print on the report.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run",
"by"
],
"properties": {
"by": {
"type": "string",
"maxLength": 200,
"description": "Who is signing it off, as it should read on the document"
},
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
},
"date": {
"type": "string",
"maxLength": 10,
"description": "The day it was signed, YYYY-MM-DD. Default today"
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "What the signature covers, or the exception being accepted"
},
"force": {
"type": "boolean",
"description": "Sign off even though required steps are unanswered or failed. Default false; the reasons come back either way"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}run_status — Reopen or abandon a run
Move a run back to open so a step can be answered again, or abandon it when the job did not happen. A signed-off run is refused: a signature is the point at which a run stops moving.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run",
"status"
],
"properties": {
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
},
"date": {
"type": "string",
"maxLength": 10,
"description": "The day the step happened, YYYY-MM-DD. Default today"
},
"note": {
"type": "string",
"maxLength": 2000,
"description": "Why. Kept on the run's history and printed nowhere else"
},
"status": {
"enum": [
"open",
"abandoned"
],
"type": "string",
"description": "open puts a complete run back into edit; abandoned closes it without a signature"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}run_report — Produce the run report
The run as plain text on every tier: every step with its mark, who answered it, the notes, the counts and a signature block or the recorded signature. Pro also writes it to out_path as a .txt file.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run"
],
"properties": {
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
},
"out_path": {
"type": "string",
"maxLength": 1000,
"description": "Where to write the .txt file. Pro only. Omit to get the report back as text, which every tier can do"
},
"overwrite": {
"type": "boolean",
"description": "Replace out_path if a file is already there. Default false, and an existing file is refused with nothing written"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}run_delete — Delete a run
Delete a run for good, with every answer on it. A signed-off run is refused: it is the record of what somebody put their name to. Abandon a run you no longer want instead of deleting a signed one.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"run",
"confirm"
],
"properties": {
"run": {
"type": "string",
"maxLength": 200,
"description": "The run id, e.g. RUN-2026-0001, or its title when only one carries it"
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true. There is no undo and nothing is copied anywhere first"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}license_status — License status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}license_activate — Activate license
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
2 advertised
run_the_purchase-requisition — Run a purchase-requisition against a job and get it signed off
Pick or build the purchaseRequisition, start a dated run against a job, answer every step with who and when, and sign it off with the exceptions on the record.
- job
- What the run is against, e.g. Van BX21 KLM February service, or WO-2026-0044 (required)
upgrade_to_pro — Explain the upgrade
Explain what Pro on the purchase-requisition server costs and exactly what the user has to do, without leaving the conversation.
- feature
- The capped feature that prompted this, if there was one
Resources
2 advertised
contract — The snapshot rule, the run status machine, the free tier and where this server writes
Why a run copies its purchaseRequisition, the four item states and what na means, the run status machine, what blocks a sign-off, the free-tier limits and the one directory this server writes.
purchase-requisition://contractpricing — Pricing and upgrade
What purchase-requisition costs, what Pro unlocks, the checkout link that carries this connection's token, and the one step a person has to take. Machine-readable; read it before telling a user how to lift a free-tier cap.
pricing://purchase-requisition90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-02: 3 of 3 checks answered
- 2026-11-03: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1739 ms
- 95th percentile latency
- 1739 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
- · probe · passed · 1739 ms · metadata changed · 16 tool(s), 2 resource(s), 0 resource template(s), 2 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mcp-stamp-purchase-requisition-mcp https://mcp.zovo.one/mcp/purchase-requisitionCodex
codex mcp add mcp-stamp-purchase-requisition-mcp --url https://mcp.zovo.one/mcp/purchase-requisitionCursor
{
"mcpServers": {
"mcp-stamp-purchase-requisition-mcp": {
"url": "https://mcp.zovo.one/mcp/purchase-requisition"
}
}
}Cline
{
"mcpServers": {
"mcp-stamp-purchase-requisition-mcp": {
"type": "streamableHttp",
"url": "https://mcp.zovo.one/mcp/purchase-requisition",
"disabled": false
}
}
}VS Code
{
"servers": {
"mcp-stamp-purchase-requisition-mcp": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/purchase-requisition"
}
}
}Gemini CLI
gemini mcp add --transport http mcp-stamp-purchase-requisition-mcp https://mcp.zovo.one/mcp/purchase-requisitionClaude Desktop
{
"mcpServers": {
"mcp-stamp-purchase-requisition-mcp": {
"url": "https://mcp.zovo.one/mcp/purchase-requisition"
}
}
}Windsurf
{
"mcpServers": {
"mcp-stamp-purchase-requisition-mcp": {
"serverUrl": "https://mcp.zovo.one/mcp/purchase-requisition"
}
}
}Let your agent find its tools
Find servers like McpStamp MCP Stamp Purchase Requisition MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.