MCP Tool Reference
This is the full set of tools the ScopeStack MCP server exposes to your AI assistant. You don’t call these by hand — your assistant chooses them based on what you ask. The list is here so you know what’s possible and can phrase requests precisely.
A few things to keep in mind:
- Reads vs. Writes — “Reads” tools only look things up. “Writes” tools create, update, or delete data in your account. Both obey your role’s permissions; an assistant can’t write what your role can’t.
- Required inputs are the values a tool needs before it can run. Your assistant gathers these from your request or by calling a “Reads” tool first (for example, searching for a client before creating a project).
- For how IDs flow from one tool to the next and an end-to-end example, see How the MCP Works.
These tools are being replaced. Every tool listed on this page is superseded by one of seven consolidated tools and is scheduled for removal on September 30, 2026. They all still work today and their behaviour has not changed. If you are building against the MCP now, build against the seven below and use the migration map to translate any call you already have.
The consolidated tools
Rather than one tool per operation, each of these takes a selector argument that says which kind of record you mean. Fewer tools means your assistant picks the right one more reliably, which matters most when ScopeStack is connected alongside other MCP servers.
| Tool | What it does |
|---|---|
scopestack_list_project_items | Read anything on a project, or search projects. Selector: type. |
scopestack_project_item_write | Create or update anything on a project. Selectors: type + action. |
scopestack_list_settings | Read any catalog or account-configuration list. Selector: model. |
scopestack_settings_write | Create, update or delete catalog records. Selectors: model + action. |
scopestack_research | Every research-package operation. Selector: action. |
scopestack_update_service_language | Update SOW language on a project service. |
scopestack_tool_guidance | Workflow reference for the tools above. |
Migration map
Find the tool you use today in the left column. The right column is the exact replacement call, including the selector values.
| Today | Replacement |
|---|---|
get_project | scopestack_list_project_items type: "overview", project_id: <id> |
get_project_document_status | scopestack_list_project_items type: "document_status", project_document_id: <id> |
list_project_contacts | scopestack_list_project_items type: "contacts", project_id: <id> |
list_project_locations | scopestack_list_project_items type: "locations", project_id: <id> |
list_project_resources | scopestack_list_project_items type: "resources", project_id: <id> |
list_project_surveys | scopestack_list_project_items type: "surveys", project_id: <id> |
review_project_scope | scopestack_list_project_items type: "scope_review", project_id: <id> |
search_projects | scopestack_list_project_items type: "projects" (same filters; no project_id) |
add_price_adjustment_to_project | scopestack_project_item_write type: "price_adjustment", action: "upsert", project_id: <id> |
add_product_to_project | scopestack_project_item_write type: "product", action: "upsert", project_id: <id> |
add_project_contact | scopestack_project_item_write type: "contact", action: "upsert", project_id: <id> |
add_project_location | scopestack_project_item_write type: "location", action: "upsert", project_id: <id> |
add_resource_rate_to_project | scopestack_project_item_write type: "resource_rate", action: "upsert", project_id: <id> |
add_service_to_project | scopestack_project_item_write type: "service", action: "upsert", project_id: <id> |
add_vendor_resource_to_project | scopestack_project_item_write type: "vendor_resource", action: "upsert", project_id: <id> |
apply_blueprint_to_project | scopestack_project_item_write type: "blueprint", action: "apply", project_id: <id> |
apply_questionnaire_to_project | scopestack_project_item_write type: "questionnaire", action: "apply", project_id: <id> |
create_blueprint_from_project | scopestack_project_item_write type: "blueprint", action: "upsert", project_id: <id> |
create_project | scopestack_project_item_write type: "project", action: "upsert" (omit project_id to create) |
update_project | scopestack_project_item_write type: "project", action: "upsert", project_id: <id> |
update_project_contact | scopestack_project_item_write type: "contact", action: "upsert", project_id: <id> (pass the contact id) |
update_project_location | scopestack_project_item_write type: "location", action: "upsert", project_id: <id> (pass the location id) |
update_project_product | scopestack_project_item_write type: "product", action: "upsert", project_id: <id> (pass the product id) |
update_project_resource_rate | scopestack_project_item_write type: "resource_rate", action: "upsert", project_id: <id> (pass the resource_rate id) |
update_project_service | scopestack_project_item_write type: "service", action: "upsert", project_id: <id>, project_service_id: <id> |
update_project_survey | scopestack_project_item_write type: "survey", action: "upsert", project_id: <id>, survey_id: <id> |
get_service_usage | scopestack_list_settings model: "services", id: <task_id>, response_format: "usage" |
list_blueprints | scopestack_list_settings model: "blueprints" (response_format: "full" for items) |
list_document_templates | scopestack_list_settings model: "document-templates" (pass filters: {"project_id": <id>} + response_format: "full" for the per-project filename) |
list_payment_terms | scopestack_list_settings model: "payment-terms" |
list_phases | scopestack_list_settings model: "phases" (response_format: "full" for position/default) |
list_project_udf | scopestack_list_settings model: "project-udf" |
list_questionnaires | scopestack_list_settings model: "questionnaires" |
list_rate_tables | scopestack_list_settings model: "rate-tables" |
list_resource_rates | scopestack_list_settings model: "resource-rates" (pass filters: {"rate_table_id": <id>} to scope to one table) |
list_sales_executives | scopestack_list_settings model: "sales-executives" |
list_service_categories | scopestack_list_settings model: "service-categories" |
search_clients | scopestack_list_settings model: "clients" (omit query to list all) |
search_products | scopestack_list_settings model: "products" |
search_service_categories | scopestack_list_settings model: "service-categories" |
search_services | scopestack_list_settings model: "services" |
search_vendors | scopestack_list_settings model: "vendors" |
settings_get_questionnaire | scopestack_list_settings model: "questionnaires", id: <id-or-slug>, response_format: "detail" |
settings_create_questionnaire | scopestack_settings_write model: "questionnaire", action: "upsert" (omit id to create) |
settings_create_sales_executive | scopestack_settings_write model: "sales_executive", action: "upsert" (omit sales_executive_id to create) |
settings_create_service | scopestack_settings_write model: "service", action: "upsert" (omit service_id to create) |
settings_create_service_category | scopestack_settings_write model: "service_category", action: "upsert" |
settings_update_blueprint | scopestack_settings_write model: "blueprint", action: "upsert" (pass blueprint_id); action: "delete" to remove |
settings_update_questionnaire | scopestack_settings_write model: "questionnaire", action: "upsert" (pass the id to update) |
settings_update_sales_executive | scopestack_settings_write model: "sales_executive", action: "upsert" (pass sales_executive_id); action: "delete" to deactivate |
settings_update_service | scopestack_settings_write model: "service", action: "upsert" (pass service_id); action: "delete" to remove |
settings_update_subservice | scopestack_settings_write model: "subservice", action: "upsert" (pass subservice_id); action: "delete" to remove |
create_blueprint_from_research | scopestack_research action: "create_blueprint" |
create_questionnaire_from_research | scopestack_research action: "create_questionnaire" |
find_research_package | scopestack_research action: "search" |
get_research_package | scopestack_research action: "get" |
get_research_request | scopestack_research action: "get_request" |
list_research_packages | scopestack_research action: "search" |
promote_research_package | scopestack_research action: "promote" |
research_service_offering | scopestack_research action: "offering" |
update_service_language | scopestack_update_service_language (same arguments) |
tool_guidance | scopestack_tool_guidance |
Superseded tools
The tables below document the tools as they behave today. They remain accurate until the removal date above.
Project Core
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
create_project | Create a new project, optionally with a client, rate table, service location, and user-defined field values. | project_name | Writes |
get_project | Return the full contents of a project: services, resources, products, financials (hours, revenue, cost, margin), and narrative fields. | project_id | Reads |
update_project | Update project metadata: name, narrative summaries, MSA date, status, presales engineer, sales executive, and user-defined fields. | project_id | Writes |
search_projects | Search projects by name, summary, client, presales engineer, sales executive, business unit, line of business, status, or tags. Returns only active (non-archived) projects by default. Pass the optional active input to change that: true for active only, false for archived only, all for both. | none | Reads |
review_project_scope | Run a best-practice completeness check on a project’s SOW and return a scored report (language coverage, structure, level-of-effort sanity, content quality, placeholders). | project_id | Reads |
Services & SOW Language
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
add_service_to_project | Add a catalog or custom service (and optional subservices) to a project. | project_id, quantity, project_resource_id, service_category_id | Writes |
update_project_service | Update or remove a project service, and create, update, or delete its subservices. | project_service_id | Writes |
update_service_language | Set SOW language (deliverables, assumptions, out-of-scope, etc.) and/or the service description on a service or subservice. | project_id, plus one of project_service_id or project_subservice_id | Writes |
Resources & Rates
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
add_resource_rate_to_project | Add a billable resource role from the account’s rate table to a project. | project_id, resource_rate_id | Writes |
add_vendor_resource_to_project | Add a vendor resource to a project with a role, bill rate, and cost rate. | project_id, vendor_id, vendor_role, hourly_rate, hourly_cost | Writes |
update_project_resource_rate | Update the bill rate and/or cost rate for a resource already on a project. | project_id, project_resource_id | Writes |
list_project_resources | List all resources (roles and vendors) assigned to a project. | project_id | Reads |
list_rate_tables | List rate tables available for the account. | none | Reads |
list_resource_rates | List the resource rates within a rate table. | rate_table_id | Reads |
get_service_usage | Return usage stats for a catalog service: project count, active deployments, last used, blueprint memberships, recent projects. | task_id | Reads |
Products
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
add_product_to_project | Add a product from the catalog to a project by material ID and optional quantity. | project_id, material_id | Writes |
update_project_product | Update the quantity of a product on a project, or remove it. | project_product_id | Writes |
search_products | Search the product catalog by name or SKU to find the material ID. | query | Reads |
Locations
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
add_project_location | Add a named service location (on-site address or remote) to a project. | project_id, name | Writes |
update_project_location | Update the name, address, or remote flag of a location. | project_id, plus one of location_id or location_name | Writes |
list_project_locations | List all service locations on a project. | project_id | Reads |
Project Contacts
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
list_project_contacts | List the active contacts on a project, including each contact’s role (contact_type). | project_id | Reads |
add_project_contact | Add a contact to a project, such as the primary customer contact. Setting a primary contact regenerates document previews automatically. | project_id, name, contact_type | Writes |
update_project_contact | Update an existing project contact’s details or role. Changing the primary contact regenerates document previews automatically. | project_contact_id | Writes |
Pricing Adjustments
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
add_price_adjustment_to_project | Add a discount, markup, or fee to a project, optionally scoped to a section or resource. | project_id | Writes |
Surveys & Questionnaires (on a Project)
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
apply_questionnaire_to_project | Instantiate a questionnaire as a survey, write answers, build recommendations, and apply the resulting services — in one call. | project_id, questionnaire_id | Writes |
list_project_surveys | List the surveys on a project, including questions and existing answers. | project_id | Reads |
update_project_survey | Write answers to a project survey; by default marks it complete and sends notifications. | project_id, survey_id, responses | Writes |
list_questionnaires | List published questionnaires available for the account. | none | Reads |
Documents
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
list_document_templates | List document templates available for a project. | project_id | Reads |
get_project_document_status | Get a project document’s generation status and, when ready, its download URL. | project_document_id | Reads |
The download URL expires after five minutes.
get_project_document_statusreturns a pre-signed link along with anexpires_attimestamp. Fetch the file promptly rather than storing the URL, and request a fresh one if you need the document again later. The link keeps the document’s original filename and extension, so you can rely on the extension to determine the file type.
Search & Discovery
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
search_clients | Search active clients by full or partial name. | name | Reads |
search_services | Search active catalog services by a word or phrase, with an optional service-type filter. | content | Reads |
search_service_categories | Search active service categories by name. | name | Reads |
search_vendors | Search active vendors by name. | name | Reads |
Account Configuration Lists
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
list_phases | List active project phases for the account. | none | Reads |
list_payment_terms | List active payment terms for the account. | none | Reads |
list_project_udf | List project-level user-defined fields configured for the account. | none | Reads |
list_service_categories | List the catalog hierarchy of Lines of Business and the service categories nested beneath them. Omit line_of_business to list every LOB. | none | Reads |
list_sales_executives | List the account’s sales executives, available for assignment to projects. Defaults to active only. | none | Reads |
Blueprints
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
list_blueprints | List all blueprints available for the account. | none | Reads |
apply_blueprint_to_project | Apply a blueprint to a project, adding its pre-built services and resources. | project_id, blueprint_id | Writes |
create_blueprint_from_project | Create a reusable blueprint from an existing project’s scope. | project_id, name | Writes |
Settings — Catalog & Questionnaires
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
settings_create_service | Create a standard service (with optional subservices and SOW language) in the catalog. | name, service_category_id | Writes |
settings_update_service | Update a catalog service’s name, description, category, hours, or language; set delete: true to deactivate it. | service_id | Writes |
settings_update_subservice | Update a catalog subservice’s name, description, or hours; set delete: true to deactivate it. | subservice_id | Writes |
settings_create_service_category | Create a service category or nested subcategory. | name | Writes |
settings_create_questionnaire | Create a questionnaire with questions, sections, calculations, and service recommendations. | name | Writes |
settings_update_questionnaire | Append questions, sections, calculations, or recommendations to a questionnaire; optionally update its name or intro. | id | Writes |
settings_get_questionnaire | Fetch a single questionnaire’s full detail by ID or slug. | id | Reads |
settings_update_blueprint | Update a blueprint’s name, add or remove service items, or delete it. | blueprint_id | Writes |
settings_create_sales_executive | Create a sales executive on the account so they can be assigned to projects. | name | Writes |
settings_update_sales_executive | Update a sales executive’s details, or remove them from the account with active: false. | sales_executive_id | Writes |
Utility
| Tool | What it does | Required inputs | Reads/Writes |
|---|---|---|---|
tool_guidance | Return the recommended workflow, key concepts, and common flow sequences for the MCP tools. A good first call in a session. | none | Reads |
New to ScopeStack?
ScopeStack automates scoping, pricing, and SOW generation for IT services teams. See how it fits your process.