Tenda
by eshmere.ai · remote · no sign-in to list tools · v0.1.0 · published by ai.eshmere
Public tenders and contract awards in the UK, US, Canada and EU, and help preparing bids.
36 tools: 14 can delete or cancel things, 12 change things and 10 only read.
Scanned Oct 21, 2026
- Deletes or cancels14Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things12Claude Code: ask: see these tools
- Only reads10Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http tenda https://mcp.tenda.eshmere.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_tender_updates" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_tender_updates" says "get": a word for reading.
- Warnopen_tenda
The server marks "open_tenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_tenda" says "open": a word for a change.
- Warnopen_bid_panel
The server marks "open_bid_panel" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_bid_panel" says "open": a word for a change.
- Warnset_up_tenda
The server marks "set_up_tenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "set_up_tenda" says "set": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
36 tools
Deletes or cancels 14Claude Code: deny
add_tender_documentsUse this when the user shares text from a tender's documents, or wants Tenda to read the files the buyer published with the notice (read_published, signed in).No findings
Why it is in this group
- The name "add_tender_documents" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user shares text from a tender's documents, or wants Tenda to read the files the buyer published with the notice (read_published, signed in). Returns a checklist of everything the bid must include, each with its file, page and the buyer's own words, and the requirements the notice leaves out, such as turnover, insurance and certifications. When the workspace can use Tenda's AI, it also returns the questions the buyer scores and how they're marked. Not for documents unrelated to a tender. Example: {"tender_reference":"012345-2026","read_published":true}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
assign_taskUse this when the user gives work on a team bid to someone, or takes it on: "give the Bristol bid call to Sam".No findings
Why it is in this group
- The name "assign_task" says "assign": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user gives work on a team bid to someone, or takes it on: "give the Bristol bid call to Sam". The work is the bid call while a tender waits in Watching or Qualifying, or a sprint step, the next one unless named. Says who has it and whether they heard in Slack. When the person's role can't do it, the answer says who can: ask the user before choosing one. Needs a Tenda account and workspace. Not for ticking off a step (use update_bid_sprint) or the call itself (use record_bid_call). Example: {"tender_reference":"012345-2026","person":"Sam","task":"review"}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
choose_alertsUse this when the user wants to change which Slack and Teams channels get Tenda's alerts, or asks where they go: "stop the morning summary in Slack".No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants to change which Slack and Teams channels get Tenda's alerts, or asks where they go: "stop the morning summary in Slack". Change only what the user asked for; with neither send nor stop it changes nothing and says where alerts go now. Owners and admins can change alerts. Needs a Tenda account and workspace. Not for connecting a channel (Tenda dashboard, Settings, Connections) or for email alerts (use watch_tenders). Example: {"app":"slack","stop":["morning_summary"]}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
continue_bid_draftUse this to carry on a bid draft Tenda started with start_bid_draft: give it the buyer's questions it asked for, the team's answers to the questions Tenda asked, or the go-ahead to…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this to carry on a bid draft Tenda started with start_bid_draft: give it the buyer's questions it asked for, the team's answers to the questions Tenda asked, or the go-ahead to draft now with what it has (Tenda marks the gaps [TO CONFIRM]). Drafting starts once Tenda's questions are answered, or when draft_now is true. Pass each answer with the question's number or words. Needs a Tenda account. Do not use for a new bid (use start_bid_draft).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- idempotentHint: false
finish_setupSaves what Tenda's setup was told, making the workspace for someone without one, and finds the open tenders that fit.No findings
Why it is in this group
- The description's first verb is "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Saves what Tenda's setup was told, making the workspace for someone without one, and finds the open tenders that fit.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
move_in_pipelineUse this when the user wants to change where a tender stands in their team's Tenda pipeline: to Qualifying while they look into it, back to Watching, to Submitted, or to Won or Los…No findings
Why it is in this group
- The name "move_in_pipeline" says "move": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants to change where a tender stands in their team's Tenda pipeline: to Qualifying while they look into it, back to Watching, to Submitted, or to Won or Lost when the buyer announces the result. Moving to Bidding or No bid takes the bid or no-bid call (use record_bid_call). Needs a Tenda account and workspace. Do not use to take a tender off the pipeline, which is done in the Tenda dashboard.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
record_bid_callUse this when the user's team has decided whether to bid: records the bid or no-bid call, the team's answers to Tenda's five questions and the reason.No findings
Why it is in this group
- The name "record_bid_call" says "call": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user's team has decided whether to bid: records the bid or no-bid call, the team's answers to Tenda's five questions and the reason. A bid moves the tender to Bidding and plans a six-step sprint back from the deadline; a tender not in the pipeline is added first. Confirm the decision with the user before calling. Needs a Tenda account and a role that makes bid calls. Not for judging fit before the call (use assess_tender_fit). Example: {"tender_reference":"012345-2026","decision":"bid","answers":{"fit":"yes"}}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: false
record_portal_accountUse this when the user says whether their company has an account on the e-tendering portal a tender is run on, where suppliers get the tender pack and bid, often after Tenda asked …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user says whether their company has an account on the e-tendering portal a tender is run on, where suppliers get the tender pack and bid, often after Tenda asked as a tender joined the pipeline: "yes, we have an EU-Supply account" or "no, we're not on Atamis yet". Notes it for the whole team, so Tenda stops asking about that portal. Give the tender's reference, or the portal's name or the key Tenda gave (portal.key). Needs a Tenda account and workspace. Do not use to sign in to a portal: Tenda never handles portal passwords.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
rewrite_bid_answerUse this when the user wants Tenda to rewrite one answer in a bid it drafted, e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants Tenda to rewrite one answer in a bid it drafted, e.g. "make Q3 shorter" or "use the Glasgow contract as the example in 2.1". Tenda rewrites it in the background, marks it again and says when it's done. A bid's first ten rewrites are included; after that each uses a little of the workspace's allowance. Needs a Tenda account. Do not use before the draft is ready.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: false
save_company_profileUse this when the user wants Tenda to remember their business for searches, fit and readiness checks and drafting.No findings
Why it is in this group
- The name "save_company_profile" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants Tenda to remember their business for searches, fit and readiness checks and drafting. Fill in only company facts the user has told you, leaving out anything unsure and any personal details, and show the user what you'll save so they can confirm or correct it first. Saves to their team's workspace and fills in more from Companies House (SAM.gov for a US company) and contracts the company has won. Needs a Tenda account. Not for personal profiles or CVs. Example: {"summary":"Office and school cleaning in Greater Manchester","company_number":"08123456"}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- idempotentHint: true
start_bid_draftUse this when the user wants Tenda to write a whole bid for their team: it asks a few questions, drafts every answer from the company's evidence, then marks and revises them.No findings
Why it is in this group
- The name "start_bid_draft" says "start": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants Tenda to write a whole bid for their team: it asks a few questions, drafts every answer from the company's evidence, then marks and revises them. Relay Tenda's questions as they are. A whole bid uses one of the month's full bids, so first call it without confirmed, tell the user how many are left and offer to write it here with draft_bid_response, which uses none; call again with confirmed only if they choose Tenda. notify says where to hear when it's ready. Needs a Tenda account and workspace. Example: {"tender_reference":"012345-2026"}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- idempotentHint: false
stop_watchUse this when the user wants to stop one of their Tenda watches, by the watchId that watch_tenders or list_watches gave.No findings
Why it is in this group
- The name "stop_watch" says "stop": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants to stop one of their Tenda watches, by the watchId that watch_tenders or list_watches gave. It finds nothing new after that; what it already found still shows in get_tender_updates. Needs a Tenda account. Example: {"watch_id":"wch_abc123"}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
update_bid_sprintUse this when the user says a step of a bid their team is running is done, or not done after all: decode the pack, assign questions, draft answers, review and score, final checks o…No findings
Why it is in this group
- The name "update_bid_sprint" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user says a step of a bid their team is running is done, or not done after all: decode the pack, assign questions, draft answers, review and score, final checks or submit. Ticks it off with who did it and when, and says what is next and when it is due. Ticking submit moves the tender to Submitted. Needs a Tenda account and a bid sprint, which starts with a call to bid (record_bid_call). Do not use to write or check answers (use draft_bid_response or review_bid_draft).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- idempotentHint: true
update_tenda_settingsUse this when the user wants ChatGPT to use another of their Tenda workspaces, or to show tenders from another country or stop: set "workspace" to the workspace's name, or a countr…No findings
Why it is in this group
- The name "update_tenda_settings" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use this when the user wants ChatGPT to use another of their Tenda workspaces, or to show tenders from another country or stop: set "workspace" to the workspace's name, or a country's key from get_tenda_settings (such as "us") to true or false. The workspace's home country stays on. Owners and admins change countries. Needs a Tenda account.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
Changes things 12Claude Code: ask
add_to_pipelineUse this when the user wants to save a tender to their team's Tenda pipeline to consider bidding, e.g.No findings
Why it is in this group
- The name "add_to_pipeline" says "add": a word for a change.
Description, as the server wrote it Use this when the user wants to save a tender to their team's Tenda pipeline to consider bidding, e.g. "add this to our pipeline" or "let's track the Falkirk cleaning framework". Adds it in Watching, ready for the bid or no-bid call, and says which e-tendering portal the tender is run on. Until the team has said whether it has an account on that portal, the answer asks; pass the question on, and record the reply with record_portal_account. Needs a Tenda account and workspace. Do not use for alerts about new tenders (use watch_tenders) or to record a decision to bid (use record_bid_call).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
add_winning_bidUse this when the user shares a bid their company won, for Tenda to learn from, e.g.No findings
Why it is in this group
- The name "add_winning_bid" says "add": a word for a change.
Description, as the server wrote it Use this when the user shares a bid their company won, for Tenda to learn from, e.g. after Tenda offers to learn from winning bids. Tenda keeps it in the workspace's Library and learns what worked in it (structure, tone, the evidence it uses) for the bids it drafts. Pass the bid's text as the user shared it, not a link. Needs a Tenda account and workspace. Do not use for the buyer's questions for a new bid (use start_bid_draft or continue_bid_draft).
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
assess_tender_fitUse this when the user asks whether their business should bid for a public contract, or which open tenders suit them best.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use this when the user asks whether their business should bid for a public contract, or which open tenders suit them best. Compares the tender's conditions of participation (turnover, insurance levels, experience and certifications), location and lot sizes with the company's profile, and returns a fit score with reasons, likely disqualifiers and gaps. Omit tender_reference to rank the open tenders that suit the company. It does not predict or guarantee an award. Do not use for general business strategy or for private-sector sales leads.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
check_bid_readinessUse this when the user wants to know what they're missing before bidding, for one tender or in general: registrations, certifications, insurance, policies and each country's own do…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use this when the user wants to know what they're missing before bidding, for one tender or in general: registrations, certifications, insurance, policies and each country's own documents, such as Cyber Essentials in the UK, SAM.gov registration in the US or the DUME in France. A general check follows the user's home country. Returns what is held, missing or expiring. It gives readiness guidance, not legal advice. Not for Companies House look-ups or tax questions. Example: {"tender_reference":"003344-2026","documents_held":["cyber_essentials","iso_9001"]}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
draft_bid_responseUse this when the user wants help writing part of a response to a public tender: a quality question answer, social value response, method statement, case study, company overview, c…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use this when the user wants help writing part of a response to a public tender: a quality question answer, social value response, method statement, case study, company overview, cover letter or clarification question. Returns a drafting brief built from the tender's award criteria, word limits and the user's facts, so the draft answers what evaluators will score. Write the draft from the brief. Do not use for job applications, grant applications or private-sector sales proposals.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
get_tender_updatesUse this when the user asks what's new from their Tenda watches: new matching tenders, pipeline notices, deadline changes, clarifications, cancellations and awards.1 finding
Why it is in this group
- The name "get_tender_updates" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_tender_updates" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_tender_updates" says "get": a word for reading.
Description, as the server wrote it Use this when the user asks what's new from their Tenda watches: new matching tenders, pipeline notices, deadline changes, clarifications, cancellations and awards. Without since, it gives the updates not shown before and marks them seen. Agents that check on a schedule pass since, the nextSince from the answer before: it reads what was recorded after it, oldest first, and marks nothing. watch_id keeps to one watch. Needs a Tenda account. Not for searching (use search_tenders). Example: {"since":"eyJzZXEiOjQyfQ"}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- idempotentHint: false
open_bid_panelOpens the team's live bids beside a chat: each bid's steps and questions, what scores, and a way to work on one in the chat.1 finding
Why it is in this group
- The name "open_bid_panel" says "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "open_bid_panel" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_bid_panel" says "open": a word for a change.
Description, as the server wrote it Opens the team's live bids beside a chat: each bid's steps and questions, what scores, and a way to work on one in the chat.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
open_tendaOpens Tenda's own app from ChatGPT's sidebar: Today, the team's board, Find and each tender, with the bid call.1 finding
Why it is in this group
- The name "open_tenda" says "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "open_tenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_tenda" says "open": a word for a change.
Description, as the server wrote it Opens Tenda's own app from ChatGPT's sidebar: Today, the team's board, Find and each tender, with the bid call. The app moves between its pages itself.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
review_bid_draftUse this when the user has a draft answer for a public tender and wants it checked before submission, the way an evaluator would: word limit, every part of the question answered, s…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use this when the user has a draft answer for a public tender and wants it checked before submission, the way an evaluator would: word limit, every part of the question answered, specific evidence, firm commitments, no unfinished placeholders or empty superlatives, and what the section type needs (mobilisation, KPIs, measurable social value). Returns checks plus the tender's scoring criteria and a 0 to 5 rubric to score it against. Do not use to write a new answer (use draft_bid_response).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
set_up_tendaUse this when the user wants to set Tenda up for their company, or has just added Tenda and has no workspace yet: shows a short form in the chat for the company, where it works and…1 finding
Why it is in this group
- The name "set_up_tenda" says "set": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "set_up_tenda" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "set_up_tenda" says "set": a word for a change.
Description, as the server wrote it Use this when the user wants to set Tenda up for their company, or has just added Tenda and has no workspace yet: shows a short form in the chat for the company, where it works and the work it does, then how many open tenders fit it now. Needs a Tenda account. Do not use to change one fact the user names, such as a certification (use save_company_profile).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
tenda_changesSays when the team's work in a workspace last changed, for Tenda's app to keep its page up to date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Says when the team's work in a workspace last changed, for Tenda's app to keep its page up to date.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
watch_tendersUse this when the user wants alerts for new tenders or upcoming notices that match a search, or for changes to one tender they follow (clarifications, new deadlines, the award).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Use this when the user wants alerts for new tenders or upcoming notices that match a search, or for changes to one tender they follow (clarifications, new deadlines, the award). Saves a watch and gives its watchId: matches show in get_tender_updates and, with notify, in the workspace's Slack or Teams channels that get changes. Needs a Tenda account. Not for seeing the user's watches (use list_watches) or stopping one (use stop_watch). Example: {"query":"office cleaning","include_upcoming":true}
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- idempotentHint: false
Only reads 10Claude Code: allow
find_companyFinds a UK company on Companies House by name, for Tenda's setup.No findings
Why it is in this group
- The name "find_company" says "find": a word for reading.
Description, as the server wrote it Finds a UK company on Companies House by name, for Tenda's setup.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- destructiveHint: false
get_bid_draftUse this when the user asks how a bid Tenda is drafting is going, or wants to read it: its progress in steps and answers written, each question with its word count and Tenda's mark…No findings
Why it is in this group
- The name "get_bid_draft" says "get": a word for reading.
Description, as the server wrote it Use this when the user asks how a bid Tenda is drafting is going, or wants to read it: its progress in steps and answers written, each question with its word count and Tenda's mark out of 5, what's left for the team to confirm, and the check of the whole bid. Give question to read that answer in full. Once it's ready, it gives a Word file link that works for an hour, and a link to the draft in Tenda. Needs a Tenda account. Example: {"tender_reference":"012345-2026"}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
get_coverageUse this to know where Tenda looks: the countries and sources it reads, how many open, upcoming and awarded notices each holds, and when each was last read.No findings
Why it is in this group
- The name "get_coverage" says "get": a word for reading.
Description, as the server wrote it Use this to know where Tenda looks: the countries and sources it reads, how many open, upcoming and awarded notices each holds, and when each was last read. Use it before telling the user a tender isn't published anywhere Tenda reads, or to say how fresh results are. Not for searching (use search_tenders). Example: {"country":"Canada"}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
get_pipeline_statusUse this when the user asks how their team's bids are going, for a status report, or what is due: how many tenders are in each stage of their Tenda pipeline, which bids are running…No findings
Why it is in this group
- The name "get_pipeline_status" says "get": a word for reading.
Description, as the server wrote it Use this when the user asks how their team's bids are going, for a status report, or what is due: how many tenders are in each stage of their Tenda pipeline, which bids are running with their next step and due date, which tenders still need the bid or no-bid call, and which bids are waiting on a result. Needs a Tenda account and workspace. Do not use to find new tenders (use search_tenders) or for alerts from saved watches (use get_tender_updates).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
get_tenda_settingsUse this when the user asks which Tenda workspace ChatGPT uses, or which countries' tenders it shows: returns Tenda's settings in ChatGPT, the workspace (for someone in more than o…No findings
Why it is in this group
- The name "get_tenda_settings" says "get": a word for reading.
Description, as the server wrote it Use this when the user asks which Tenda workspace ChatGPT uses, or which countries' tenders it shows: returns Tenda's settings in ChatGPT, the workspace (for someone in more than one) and the workspace's countries. Needs a Tenda account. Do not use for the company profile (use save_company_profile).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
get_tender_detailsUse this when the user asks about one tender, framework or standing offer, by notice ID, buyer reference or from earlier results: the deadline, the portal to submit through, lots, …No findings
Why it is in this group
- The name "get_tender_details" says "get": a word for reading.
Description, as the server wrote it Use this when the user asks about one tender, framework or standing offer, by notice ID, buyer reference or from earlier results: the deadline, the portal to submit through, lots, value, conditions, award criteria and what the buyer wants, in plain English. It also reads the competition: who holds the work now, what the buyer paid before, how many bids it drew, and whether the tender is worth chasing. Not for finding tenders (use search_tenders). Example: {"tender_reference":"012345-2026"}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
list_watchesUse this when the user asks which Tenda watches they have, or to find the one to stop: each watch with its ID, what it watches for, its countries and whether it posts to Slack or T…No findings
Why it is in this group
- The name "list_watches" says "list": a word for reading.
Description, as the server wrote it Use this when the user asks which Tenda watches they have, or to find the one to stop: each watch with its ID, what it watches for, its countries and whether it posts to Slack or Teams. Needs a Tenda account. Do not use for what the watches found (use get_tender_updates). Example: {}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
- idempotentHint: true
search_contract_awardsUse this to find who won public contracts in the UK, Canada, the United States, Germany, France and the rest of the EU, what a buyer paid last time, and which contracts end soon an…No findings
Why it is in this group
- The name "search_contract_awards" says "search": a word for reading.
Description, as the server wrote it Use this to find who won public contracts in the UK, Canada, the United States, Germany, France and the rest of the EU, what a buyer paid last time, and which contracts end soon and may be re-tendered. Searches the user's own countries unless they name one. Answers give the total, pass nextCursor back as cursor for more, and summarise says who won most across every match. Not for tenders open now (use search_tenders) or a public body's total spending. Example: {"buyer":"Leeds City Council","query":"cleaning","summarise":"supplier"}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
search_mentionsFinds the team's tenders and people by name, for @ mentions in ChatGPT.No findings
Why it is in this group
- The name "search_mentions" says "search": a word for reading.
Description, as the server wrote it Finds the team's tenders and people by name, for @ mentions in ChatGPT.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
search_tendersUse this to find public sector contracts to bid for in the UK, Canada, the United States, Germany, France and the rest of the EU: open tenders, frameworks and upcoming notices from…No findings
Why it is in this group
- The name "search_tenders" says "search": a word for reading.
Description, as the server wrote it Use this to find public sector contracts to bid for in the UK, Canada, the United States, Germany, France and the rest of the EU: open tenders, frameworks and upcoming notices from any public buyer. Searches the user's own countries unless they name one; get_coverage lists every source and when it was last read. Answers give the total; pass nextCursor back as cursor for more. Not for past winners (use search_contract_awards) or jobs. Example: {"query":"school cleaning","region":"North West","closing_within_days":30}
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http tenda https://mcp.tenda.eshmere.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__tenda__search_tenders",
"mcp__tenda__get_tender_details",
"mcp__tenda__search_contract_awards",
"mcp__tenda__list_watches",
"mcp__tenda__get_pipeline_status",
"mcp__tenda__get_bid_draft",
"mcp__tenda__get_coverage",
"mcp__tenda__search_mentions",
"mcp__tenda__get_tenda_settings",
"mcp__tenda__find_company"
],
"ask": [
"mcp__tenda__assess_tender_fit",
"mcp__tenda__check_bid_readiness",
"mcp__tenda__draft_bid_response",
"mcp__tenda__review_bid_draft",
"mcp__tenda__watch_tenders",
"mcp__tenda__get_tender_updates",
"mcp__tenda__add_to_pipeline",
"mcp__tenda__add_winning_bid",
"mcp__tenda__open_tenda",
"mcp__tenda__open_bid_panel",
"mcp__tenda__tenda_changes",
"mcp__tenda__set_up_tenda"
],
"deny": [
"mcp__tenda__stop_watch",
"mcp__tenda__add_tender_documents",
"mcp__tenda__save_company_profile",
"mcp__tenda__record_portal_account",
"mcp__tenda__record_bid_call",
"mcp__tenda__update_bid_sprint",
"mcp__tenda__assign_task",
"mcp__tenda__move_in_pipeline",
"mcp__tenda__choose_alerts",
"mcp__tenda__start_bid_draft",
"mcp__tenda__continue_bid_draft",
"mcp__tenda__rewrite_bid_answer",
"mcp__tenda__update_tenda_settings",
"mcp__tenda__finish_setup"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tenda. Review it before you use it.