← WebMCP Directory

Tool tree

smartjon7.github.io

Productivity & BusinessTools verified
Website
CivicBid Studio: a shared, auditable public-infrastructure bid room where a person and a browser agent decide what to pursue. Synthetic demonstration built for the OpenAI WebMCP Challenge.
Explore capabilities
    civicbid_list_opportunitiesAnswer

    Lists the public-infrastructure opportunities in the bid room with each one's deterministic score and bid/no-bid recommendation, sorted best first. Use it first, to find and filter opportunities by minimum value, days to the bid deadline, or sector. Do not use it for requirement detail; open an opportunity for that. Read-only: it changes nothing in the workspace.

    View tool JSON
    {
      "name": "civicbid_list_opportunities",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the public-infrastructure opportunities in the bid room with each one's deterministic score and bid/no-bid recommendation, sorted best first. Use it first, to find and filter opportunities by minimum value, days to the bid deadline, or sector. Do not use it for requirement detail; open an opportunity for that. Read-only: it changes nothing in the workspace.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "minimumValueUsd": {
            "type": "integer",
            "minimum": 0,
            "description": "Keep opportunities whose estimated value is at least this many US dollars."
          },
          "maximumDaysToDeadline": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "description": "Keep opportunities whose bid deadline is within this many days of the demo date."
          },
          "sectors": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "rail",
                "accessibility",
                "housing"
              ]
            },
            "maxItems": 3,
            "uniqueItems": true,
            "description": "Keep only these sectors."
          },
          "includeClosed": {
            "type": "boolean",
            "default": false,
            "description": "Include opportunities whose deadline has already passed."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_compare_opportunitiesAction

    Ranks two or three opportunities side by side with dimension scores, passed gates, gaps, and up to four plain-English reasons the strongest one wins. Use it when the human asks which opportunity to pursue. Do not use it on a single opportunity. It does not change any business data, but it switches the visible panel to the comparison so the human sees the same ranking.

    View tool JSON
    {
      "name": "civicbid_compare_opportunities",
      "kind": "act",
      "impl": "imperative",
      "description": "Ranks two or three opportunities side by side with dimension scores, passed gates, gaps, and up to four plain-English reasons the strongest one wins. Use it when the human asks which opportunity to pursue. Do not use it on a single opportunity. It does not change any business data, but it switches the visible panel to the comparison so the human sees the same ranking.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "opportunityIds"
        ],
        "properties": {
          "opportunityIds": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "opp-rail-fastener-renewal",
                "opp-station-accessibility",
                "opp-senior-housing-preservation"
              ],
              "description": "Opportunity id exactly as returned by civicbid_list_opportunities."
            },
            "minItems": 2,
            "maxItems": 3,
            "uniqueItems": true,
            "description": "Two or three opportunity ids to rank side by side."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_open_opportunityAction

    Opens one opportunity in the shared workspace so both the human and the agent work on the same bid, and returns its evaluation and requirement counts. Use it before listing requirements, focusing, assigning, registering risks, or staging a decision. Do not use it just to read scores; civicbid_list_opportunities already returns them. Side effect: the workspace switches to this opportunity and any requirement focus from another opportunity is cleared. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_open_opportunity",
      "kind": "act",
      "impl": "imperative",
      "description": "Opens one opportunity in the shared workspace so both the human and the agent work on the same bid, and returns its evaluation and requirement counts. Use it before listing requirements, focusing, assigning, registering risks, or staging a decision. Do not use it just to read scores; civicbid_list_opportunities already returns them. Side effect: the workspace switches to this opportunity and any requirement focus from another opportunity is cleared. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "opportunityId"
        ],
        "properties": {
          "opportunityId": {
            "type": "string",
            "enum": [
              "opp-rail-fastener-renewal",
              "opp-station-accessibility",
              "opp-senior-housing-preservation"
            ],
            "description": "Opportunity id exactly as returned by civicbid_list_opportunities."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_get_contextAnswer

    Returns everything about the open opportunity in one call: company profile, evaluation with dimensions and gates, every requirement with status and finding, assignments, risks, the staged decision, approval status, owner-brief status, and recent human profile changes. Use it after opening an opportunity and before planning work. Do not use it to detect what changed since an earlier call; civicbid_get_workspace_state with sinceStateVersion does that. Read-only.

    View tool JSON
    {
      "name": "civicbid_get_context",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns everything about the open opportunity in one call: company profile, evaluation with dimensions and gates, every requirement with status and finding, assignments, risks, the staged decision, approval status, owner-brief status, and recent human profile changes. Use it after opening an opportunity and before planning work. Do not use it to detect what changed since an earlier call; civicbid_get_workspace_state with sinceStateVersion does that. Read-only.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      },
      "page": "/civicbid-studio/"
    }
    civicbid_list_requirementsAnswer

    Lists the requirements of the open opportunity with status, gate effect, severity, finding, evidence, suggested mitigation, suggested owner, and any assignment. Use it to find disqualification risks and unassigned work; filter by mandatory, status, or category. Do not call it before an opportunity is open. Read-only.

    View tool JSON
    {
      "name": "civicbid_list_requirements",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lists the requirements of the open opportunity with status, gate effect, severity, finding, evidence, suggested mitigation, suggested owner, and any assignment. Use it to find disqualification risks and unassigned work; filter by mandatory, status, or category. Do not call it before an opportunity is open. Read-only.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mandatoryOnly": {
            "type": "boolean",
            "default": false,
            "description": "Return only mandatory requirements."
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "satisfied",
                "gap",
                "at_risk",
                "assigned",
                "complete"
              ]
            },
            "maxItems": 5,
            "uniqueItems": true,
            "description": "Keep only requirements in these statuses."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "eligibility",
                "bonding",
                "experience",
                "staffing",
                "safety",
                "participation",
                "schedule",
                "quality",
                "legal",
                "submission"
              ]
            },
            "maxItems": 10,
            "uniqueItems": true,
            "description": "Keep only requirements in these categories."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_focus_requirementsAction

    Highlights up to ten requirements of the open opportunity in the human's view, with a one-sentence reason, so the person sees exactly what the agent wants reviewed. Use it after identifying disqualification risks. Do not use it to assign work; civicbid_assign_requirement does that. Side effect: the highlighted set and reason change in the workspace. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_focus_requirements",
      "kind": "act",
      "impl": "imperative",
      "description": "Highlights up to ten requirements of the open opportunity in the human's view, with a one-sentence reason, so the person sees exactly what the agent wants reviewed. Use it after identifying disqualification risks. Do not use it to assign work; civicbid_assign_requirement does that. Side effect: the highlighted set and reason change in the workspace. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requirementIds",
          "mode",
          "reason"
        ],
        "properties": {
          "requirementIds": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{2,5}-[0-9]{2}$",
              "minLength": 5,
              "maxLength": 8,
              "description": "Requirement id such as RAIL-01, taken from civicbid_list_requirements."
            },
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "description": "Requirement ids from the open opportunity to highlight for the human."
          },
          "mode": {
            "type": "string",
            "enum": [
              "replace",
              "add"
            ],
            "description": "replace sets the focus list; add extends it."
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "description": "One sentence telling the human why these requirements deserve attention."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_assign_requirementAction

    Assigns one requirement of the open opportunity to an owner role with a due date and optional note; calling it again with the same values is a harmless no-op, and different values update the assignment. Use it to put every mitigable gap and open deliverable in someone's hands. Do not use it for requirements that cannot be met before bid day. Side effect: the assignment is recorded and the compliance score can rise. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_assign_requirement",
      "kind": "act",
      "impl": "imperative",
      "description": "Assigns one requirement of the open opportunity to an owner role with a due date and optional note; calling it again with the same values is a harmless no-op, and different values update the assignment. Use it to put every mitigable gap and open deliverable in someone's hands. Do not use it for requirements that cannot be met before bid day. Side effect: the assignment is recorded and the compliance score can rise. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requirementId",
          "ownerRole",
          "dueDate"
        ],
        "properties": {
          "requirementId": {
            "type": "string",
            "pattern": "^[A-Z]{2,5}-[0-9]{2}$",
            "minLength": 5,
            "maxLength": 8,
            "description": "Requirement id such as RAIL-01, taken from civicbid_list_requirements."
          },
          "ownerRole": {
            "type": "string",
            "enum": [
              "Executive Sponsor",
              "Proposal Manager",
              "Estimating Lead",
              "Finance & Bonding",
              "Operations Lead",
              "Safety Director",
              "Compliance Lead",
              "JV & Legal",
              "Scheduler",
              "Quality Manager"
            ],
            "description": "Role on the bid team that owns the work."
          },
          "dueDate": {
            "type": "string",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "minLength": 10,
            "maxLength": 10,
            "description": "Calendar date in YYYY-MM-DD form."
          },
          "note": {
            "type": "string",
            "maxLength": 300,
            "default": "",
            "description": "Optional instruction for the owner."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_upsert_riskAction

    Adds a risk to the open opportunity's register, or updates the risk that already carries the same riskKey, with severity, related requirements, rationale, mitigation, owner, and status. Use it to record disqualification and delivery risks with a named owner; registering mitigations raises risk readiness. Do not use it for requirement assignments. Side effect: the risk register changes. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_upsert_risk",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds a risk to the open opportunity's register, or updates the risk that already carries the same riskKey, with severity, related requirements, rationale, mitigation, owner, and status. Use it to record disqualification and delivery risks with a named owner; registering mitigations raises risk readiness. Do not use it for requirement assignments. Side effect: the risk register changes. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "riskKey",
          "title",
          "severity",
          "ownerRole"
        ],
        "properties": {
          "riskKey": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9-]{1,48}$",
            "minLength": 2,
            "maxLength": 49,
            "description": "Stable lowercase slug such as bonding-shortfall. Reusing a key updates that risk."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Short name of the risk."
          },
          "severity": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ],
            "description": "How badly this could hurt the bid."
          },
          "relatedRequirementIds": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{2,5}-[0-9]{2}$",
              "minLength": 5,
              "maxLength": 8,
              "description": "Requirement id such as RAIL-01, taken from civicbid_list_requirements."
            },
            "maxItems": 5,
            "uniqueItems": true,
            "description": "Requirement ids in the open opportunity that this risk threatens.",
            "default": []
          },
          "rationale": {
            "type": "string",
            "maxLength": 500,
            "default": "",
            "description": "Why the risk exists."
          },
          "mitigation": {
            "type": "string",
            "maxLength": 500,
            "default": "",
            "description": "What will be done about it."
          },
          "ownerRole": {
            "type": "string",
            "enum": [
              "Executive Sponsor",
              "Proposal Manager",
              "Estimating Lead",
              "Finance & Bonding",
              "Operations Lead",
              "Safety Director",
              "Compliance Lead",
              "JV & Legal",
              "Scheduler",
              "Quality Manager"
            ],
            "description": "Role on the bid team that owns the work."
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "mitigating",
              "resolved"
            ],
            "default": "open",
            "description": "open, mitigating, or resolved."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_stage_decisionAction

    Stages a bid/no-bid recommendation (go, conditional_go, or no_go) for the open opportunity with rationale, conditions, assumptions, and confidence, and hands it to the human as a pending decision. Use it once the gaps are assigned and the risks registered; staging again replaces the pending recommendation and records which one it supersedes. Do not stage go or conditional_go while an unmitigable gap remains. Side effect: the pending decision changes and any earlier approval no longer applies. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_stage_decision",
      "kind": "act",
      "impl": "imperative",
      "description": "Stages a bid/no-bid recommendation (go, conditional_go, or no_go) for the open opportunity with rationale, conditions, assumptions, and confidence, and hands it to the human as a pending decision. Use it once the gaps are assigned and the risks registered; staging again replaces the pending recommendation and records which one it supersedes. Do not stage go or conditional_go while an unmitigable gap remains. Side effect: the pending decision changes and any earlier approval no longer applies. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "recommendation",
          "rationale",
          "confidence"
        ],
        "properties": {
          "recommendation": {
            "type": "string",
            "enum": [
              "go",
              "conditional_go",
              "no_go"
            ],
            "description": "go, conditional_go, or no_go."
          },
          "rationale": {
            "type": "string",
            "minLength": 40,
            "maxLength": 1200,
            "description": "Plain-English reasoning behind the recommendation."
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 240,
              "description": "A condition the bid depends on."
            },
            "maxItems": 8,
            "uniqueItems": true,
            "description": "Conditions that must hold for the recommendation to stand.",
            "default": []
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 240,
              "description": "An assumption behind the recommendation."
            },
            "maxItems": 8,
            "uniqueItems": true,
            "description": "Assumptions the recommendation rests on.",
            "default": []
          },
          "confidence": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "Confidence in the recommendation, 0 to 100."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_get_workspace_stateAnswer

    Returns the current state version, the open opportunity and its evaluation, assignments, risks, the staged decision, approval status, and, when sinceStateVersion is given, every human and system change made after that version with before-and-after scores plus a one-sentence summary. Use it to reread the workspace after the human may have edited something, and before restaging a decision. Do not use it for the full requirement list; civicbid_get_context has that. Read-only.

    View tool JSON
    {
      "name": "civicbid_get_workspace_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns the current state version, the open opportunity and its evaluation, assignments, risks, the staged decision, approval status, and, when sinceStateVersion is given, every human and system change made after that version with before-and-after scores plus a one-sentence summary. Use it to reread the workspace after the human may have edited something, and before restaging a decision. Do not use it for the full requirement list; civicbid_get_context has that. Read-only.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "detailLevel": {
            "type": "string",
            "enum": [
              "summary",
              "full"
            ],
            "default": "summary",
            "description": "summary returns scores and gaps; full returns the entire evaluation."
          },
          "sinceStateVersion": {
            "type": "integer",
            "minimum": 0,
            "description": "Return human and system changes made after this state version."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_generate_owner_briefAction

    Generates the executive owner brief from the approved decision, its evaluation, assignments, risks, human changes, and the audit log, within a word budget. Use it only after the human has approved the staged decision; before that it fails with DECISION_NOT_APPROVED and the right move is to stop and ask the human to approve in the workspace. Side effect: the brief is stored and shown. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_generate_owner_brief",
      "kind": "act",
      "impl": "imperative",
      "description": "Generates the executive owner brief from the approved decision, its evaluation, assignments, risks, human changes, and the audit log, within a word budget. Use it only after the human has approved the staged decision; before that it fails with DECISION_NOT_APPROVED and the right move is to stop and ask the human to approve in the workspace. Side effect: the brief is stored and shown. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "maximumWords": {
            "type": "integer",
            "minimum": 150,
            "maximum": 400,
            "default": 260,
            "description": "Word budget for the brief."
          },
          "emphasis": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "decision",
                "conditions",
                "risks",
                "assignments",
                "deadlines",
                "next_actions"
              ]
            },
            "maxItems": 6,
            "uniqueItems": true,
            "description": "Sections to place first and protect from trimming.",
            "default": []
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Optional title for the brief."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_reset_demoAction

    Restores the demonstration to its seed state: the company profile, assignments, risks, decisions, approval, brief, and activity log are all cleared. Use it only when the human asks to start over, and pass the confirmation string exactly. Do not use it to undo a single step. Side effect: all workspace data is replaced. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.

    View tool JSON
    {
      "name": "civicbid_reset_demo",
      "kind": "act",
      "impl": "imperative",
      "description": "Restores the demonstration to its seed state: the company profile, assignments, risks, decisions, approval, brief, and activity log are all cleared. Use it only when the human asks to start over, and pass the confirmation string exactly. Do not use it to undo a single step. Side effect: all workspace data is replaced. This tool changes the workspace and is logged; it never approves or rejects anything, because approval belongs to the human alone.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "confirm"
        ],
        "properties": {
          "confirm": {
            "type": "string",
            "enum": [
              "RESET_CIVICBID_DEMO"
            ],
            "description": "Must be exactly RESET_CIVICBID_DEMO."
          }
        }
      },
      "page": "/civicbid-studio/"
    }
    civicbid_simulate_company_changeAction

    Previews how the evaluation of every opportunity (or one opportunity) would move if the company profile changed, for example if a JV partner were confirmed with more bonding, without writing anything. Use it to recommend a profile change to the human, who is the only one who can make it in the workspace. Do not use it to change the profile; no tool can. Read-only.

    View tool JSON
    {
      "name": "civicbid_simulate_company_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Previews how the evaluation of every opportunity (or one opportunity) would move if the company profile changed, for example if a JV partner were confirmed with more bonding, without writing anything. Use it to recommend a profile change to the human, who is the only one who can make it in the workspace. Do not use it to change the profile; no tool can. Read-only.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "changes"
        ],
        "properties": {
          "changes": {
            "type": "object",
            "additionalProperties": false,
            "description": "Company profile fields to try. Nothing is written.",
            "properties": {
              "jvPartnerConfirmed": {
                "type": "boolean",
                "description": "Whether a joint-venture partner is confirmed."
              },
              "jvCombinedBondingUsd": {
                "type": "integer",
                "minimum": 0,
                "description": "Combined JV bonding capacity in US dollars."
              },
              "singleProjectBondingUsd": {
                "type": "integer",
                "minimum": 0,
                "description": "Single-project bonding capacity in US dollars."
              },
              "aggregateBondingUsd": {
                "type": "integer",
                "minimum": 0,
                "description": "Aggregate bonding capacity in US dollars."
              },
              "availableProjectManagers": {
                "type": "integer",
                "minimum": 0,
                "description": "Project managers available to be named."
              },
              "backlogUtilizationPct": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100,
                "description": "Backlog utilization percent."
              },
              "railYears": {
                "type": "integer",
                "minimum": 0,
                "description": "Years of rail-construction experience."
              },
              "comparableRailProjects": {
                "type": "integer",
                "minimum": 0,
                "description": "Comparable rail projects completed."
              },
              "accessibilityStationProjects": {
                "type": "integer",
                "minimum": 0,
                "description": "Completed accessibility-station projects."
              },
              "completedHousingDevelopments": {
                "type": "integer",
                "minimum": 0,
                "description": "Completed affordable-housing developments."
              },
              "safetyRecord": {
                "type": "string",
                "enum": [
                  "strong",
                  "acceptable",
                  "poor"
                ],
                "description": "Safety record rating."
              },
              "dbeCertified": {
                "type": "boolean",
                "description": "Whether the company holds DBE certification."
              }
            }
          },
          "opportunityId": {
            "type": "string",
            "enum": [
              "opp-rail-fastener-renewal",
              "opp-station-accessibility",
              "opp-senior-housing-preservation"
            ],
            "description": "Limit the result to one opportunity."
          }
        }
      },
      "page": "/civicbid-studio/"
    }