QC Database MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QCDB_CONFIG_DIR | No | Override where tokens/settings are stored. | |
| QCDB_CALLBACK_PORT | No | Local OAuth callback port (default 8765). | 8765 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| loginA | Sign in to QC Database. Opens your web browser so you can log in and pick which organization (company workspace) to connect. Do this once; the connection is then remembered. You choose the project separately with 'set_project'. |
| logoutA | Sign out and forget the saved login on this computer. |
| auth_statusA | Check whether you are signed in and which project is currently active. |
| list_tenantsA | List the organizations (tenants) your account belongs to. Your login is pinned to one of them, chosen at sign-in. |
| list_projectsA | List the projects in your connected organization. Optionally filter by a search term (name, code, client, etc.). |
| set_projectA | Choose the project to work in for the rest of this session. Almost every other tool uses it, so set it before doing anything else. Give either the exact project_id, or a name_or_code to search for (it must match exactly one project). |
| get_active_projectA | Show which project is currently active for this session. |
| list_project_membersA | List the active members of the current project (use their ids when assigning notes or reference requests). |
| list_listsA | List the project's controlled-vocabulary lists (welders, weld types, materials, pipe sizes, equipment, etc.). Use 'list_list_items' to read one. |
| list_list_itemsA | Read the entries in one controlled-vocabulary list. Each entry includes a 'pseudo_code' pill token - paste that verbatim into a map item field so the value stays linked to the canonical list entry instead of being free text. |
| list_map_item_schemasA | List the map item schemas available in this project. A schema (e.g. 'Weld') defines the custom fields a map item carries - you need its id to create one. |
| list_document_foldersA | List the document folders (document types) and their extraction schemas - e.g. an 'MTR' folder that extracts heat number and material grade. Use a folder id when uploading a document so it is filed and extracted correctly. |
| list_documentsA | List uploaded documents in the current project. Optionally filter by a document folder id, status (uploading/processing/extracting/ready/error), or a search term. |
| upload_documentA | Upload a record (MTR, NDE report, certificate, procedure, etc.) to the current project. Optionally file it under a document folder id (recommended, so the right extraction schema runs). Set do_not_extract=True if you will supply the extracted data yourself with 'set_document_extracted_data'. |
| get_documentB | Get one document's details, including its AI-extracted structured data. |
| set_document_extracted_dataA | Write structured fields back onto a document (used after you run your own 'bring your own AI' extraction). 'extracted_data' is a JSON object string matching the folder's schema. |
| upload_drawingA | Upload an isometric drawing (PDF) to the current project. Multi-page PDFs are split into one drawing per sheet. Set do_not_extract=True to skip the server-side AI extraction. |
| upload_large_format_drawingA | Upload a large-format drawing (P&ID, plan, elevation, overview) PDF to the current project. Set do_not_extract=True to skip server-side AI extraction. |
| list_map_itemsA | List map items (welds, flanges, fittings...) in the current project. Optionally filter by drawing id, schema id, status, or a search term. |
| create_map_itemA | Create a map item (a weld, flange, fitting...) pinned to a drawing. Use a schema id from 'list_map_item_schemas'. 'data' is a JSON object of the schema's custom fields; for fields that map to a controlled list, put that list item's 'pseudo_code' pill (from 'list_list_items') as the value instead of free text. |
| mark_map_item_completeA | Mark a map item complete. This is a buy-off recorded under YOUR name and the current time. Only do this when the user has confirmed the work is done - the user is responsible for this sign-off. |
| mark_map_item_acceptedA | Mark a map item accepted (must already be complete). This is a buy-off recorded under YOUR name. Only do this with the user's explicit go-ahead - the user is accountable for the acceptance. |
| list_fillable_templatesA | List document folders that publish a fillable PDF template (RIR, inspection checklist, test report...) you can fill out and file. |
| get_fillable_templateA | Read a fillable template's form fields and its project-resolved autofill values, so you know what to fill in before downloading and submitting it. |
| download_fillable_templateA | Download the blank fillable PDF for a folder to a local path so you can fill it in (ideally flatten it) before submitting. |
| submit_fillable_templateA | Submit a filled PDF back into a template's folder as a document. Re-using a file_name creates a new version of that document. Set do_not_extract=True if you will supply the extracted JSON yourself. Note: filling the PDF stores the signed record; to also populate structured fields, follow up with 'set_document_extracted_data' on the returned document. |
| list_form_submissionsA | List inspection-form submissions in the current project. Optionally filter by a form schema id or status (draft/completed). |
| create_form_submissionA | Start a new inspection-form submission from a form schema id. 'data' is an optional JSON object of initial field values. It is created as a draft; use 'complete_form_submission' to lock it once finished. |
| complete_form_submissionA | Mark a form submission complete. Completed forms are evidence that can satisfy reference requests. This locks the submission - only do it when the user confirms the form is finished. |
| create_noteA | Create a note (observation, action item, issue) on the current project. Optionally make it private, set a severity, anchor it to a page_url, and assign (@mention) it to a project member by their user id. |
| list_notesA | List the public notes feed for the current project. status can be 'all' (default), 'open', or 'resolved'. |
| resolve_noteA | Mark a note resolved, with an optional resolution comment. |
| list_itp_line_itemsA | List ITP (Inspection & Test Plan) line items in the current project - the required inspection/test steps. Optionally filter by package id, and by completed / accepted (true or false). |
| mark_itp_completeA | Mark an ITP line item complete. This is a buy-off recorded under YOUR name. Only do this when the user confirms the activity is done - the user is responsible for the sign-off. |
| mark_itp_acceptedA | Mark an ITP line item accepted (must already be complete). This is a buy-off recorded under YOUR name. Only do this with the user's explicit go-ahead. |
| attach_photoC | Attach a photo to an object (for example object_type='map_item' with that item's id). Optionally add a caption. |
| list_reference_requestsA | List reference requests - the tracked 'still-needs-proof' items. By default shows OPEN ones, which together are the punch list standing between the team and a complete turnover package. Pass status='all' (or fulfilled/cancelled) or an assignee user id to filter. |
| create_reference_requestA | Create a reference request (record that a source item still needs proof). item_type is map_item, itp_item, or list_item. reference_type is 'document' (then give document_folder) or 'custom_form' (then give form_schema). Optionally assign it to a project member and add a description. |
| list_referencesB | List the references already attached to a source item. source_type is map_item, list_item, or itp_line_item. |
| create_referenceA | Link a source item to its proof - this is how a turnover package gets completed. source_type is map_item, list_item, or itp_line_item. target_type is 'document' or 'form' (a form submission). Creating a matching reference fulfils any open reference request for that item. |
| turnover_reportA | Summarize how close the current project is to a complete turnover package: open vs. fulfilled reference requests (the 'what's missing' list), and ITP line items not yet completed or accepted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/larrygiroux/qcdatabase_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server