Skip to main content
Glama
samarpassey

maple-procure

by samarpassey

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost interface for HTTP server. Defaults to 0.0.0.0.0.0.0.0
PORTNoPort for HTTP server. Defaults to 8000 or platform-provided PORT.8000
MAPLE_PROCURE_HOSTNoPublic hostname used for DNS-rebinding protection. Automatically set from RENDER_EXTERNAL_HOSTNAME on Render.
MAPLE_PROCURE_SCOPESNoComma-separated list of scopes for stdio transport. Defaults to 'read'. Only used when not using HTTP tokens. Unknown scope names abort at startup.read
MAPLE_PROCURE_TOKENSNoSpace-separated subject:secret:scopes entries for HTTP bearer tokens. Required for HTTP mode; the server refuses to start if none are set.
MAPLE_PROCURE_CONFIRM_KEYSNoSpace-separated keys (each ≥32 bytes) to keep export confirmations valid across restarts. If unset, a key is generated at startup, invalidating outstanding handles on restart.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_tendersA

Search open Canadian federal tender notices — solicitations still accepting bids. Use this for "what can we bid on", "which contracts are coming up", or to find work in a field or region.

Not for contracts already awarded: search_awards covers who won what, for how much.

Results are ordered soonest-closing first, or by relevance when keywords is given. Cite the notice_url when a row has one — about 5% are null, because legacy reference numbers do not resolve on the current site and a null is preferred to a link that 404s. Quote the reference number instead for those; do not construct a URL. Read the notes field and pass on what it says; it states what this result does not cover.

get_tenderA

Fetch one open tender notice in full by its exact reference number: complete description, dates, category, trade agreements and buyer.

Use after search_tenders has found a notice worth reading. This does not search — the reference number must match exactly, and an unknown one returns no rows rather than an error.

Buyer contact details are personal data and are withheld by default. Set include_contact to true only when the user has actually asked how to reach the buyer; the call is refused without the pii scope.

search_awardsA

Search awarded Canadian federal contracts — who won, for how much, when, and for which buyer. Use this for a supplier's track record, for what similar work has gone for, or for "who won X".

Not for opportunities still open: search_tenders covers notices accepting bids. For ranked totals rather than individual contracts, use summarize_spend.

About 30% of award notices disclose no dollar figure. Those rows come back with award_value null and are counted in coverage.unvalued_rows — that is a withheld amount, not a free contract. Read notes and pass on what it says.

summarize_spendA

Rank total disclosed contract value by buyer, supplier or category. Use for "who spends most on X", "which suppliers earn the most", or comparing buyers over a period.

For the individual contracts behind a total, use search_awards.

Two things make every total a floor rather than a true total, and both are reported on the result: awards that disclosed no amount are excluded rather than counted as zero, and only one currency is summed per call because the source mixes CAD, USD and EUR with no conversion. The notes field states both in words — repeat them when you report a figure. A total presented as complete is wrong.

export_reportA

Write a report of specific tender notices to a file on the server, as markdown or CSV.

This tool never writes on the first call, by design. Call it with tender_refs and it returns a preview of the exact document plus a confirm_handle, having written nothing. To actually write, call it again with identical arguments plus that handle — or answer the confirmation prompt, on clients that show one. Tell the user what the preview contains and let them decide; do not confirm on their behalf because the flow looks unfinished.

A handle lasts five minutes, works once, and is tied to the exact content previewed. If the notices or the format change, the old handle stops matching and a fresh preview is needed.

Requires the export scope. Reports contain notice summaries and links only — never buyer contact details, whatever scopes the caller holds.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samarpassey/maple-procure'

If you have feedback or need assistance with the MCP directory API, please join our Discord server