TeamGriddeveloper
TeamGrid Developer

Troubleshoot the MCP server

Diagnose TeamGrid MCP startup, authentication, profile, schema, authorization, pagination, and result-size failures without exposing credentials.

For hosted ChatGPT, first verify the owning region, OAuth connection and selected workspace with ChatGPT setup. No local CLI is required. An HTTP 401 with protected-resource metadata before sign-in is the expected OAuth challenge for an MCP POST; it is not proof that the server is broken. Opening /mcp directly in a browser sends GET and can return 405 Method Not Allowed. Use the MCP host connection flow; that endpoint is not an HTML sign-in page.

For local stdio, start with the terminal used by the same operating-system account as the MCP host:

node --version
teamgrid --version
npm list --global @teamgrid/mcp-server --depth=0
teamgrid --profile default auth status --check

Then start teamgrid-mcp --profile default --tool-profile core directly. A healthy JSON-RPC stdio server normally waits silently for host input. Stop it with Ctrl+C after this check; do not type prompts into its standard input.

Browser login is enabled in Production DE and US. Use auth login --manual as an alternative for initial setup, or auth login --manual --replace when replacing an existing local profile. See browser-login availability.

Diagnosis matrix

Symptom or message Likely boundary Safe check Resolution
The host reports that teamgrid-mcp was not found Host PATH differs from the terminal Locate the globally installed command in your terminal and inspect the host’s environment settings Configure the absolute executable path or make the same Node.js global binary directory available to the host, then restart it
The process exits with No credential found for profile '<name>' The named CLI profile has no stored credential Run teamgrid --profile <name> auth status --check as the same OS user Complete teamgrid --profile <name> auth login in a terminal; the MCP process never opens a browser
The process reports that a credential expired The stored profile metadata is past expiresAt Run teamgrid --profile <name> auth status Run teamgrid --profile <name> auth login --replace, review the workspace and scopes again, and restart the host
The process reports profile_credential_mismatch Keychain credential and CLI profile metadata describe different credential, cell, or region Inspect the non-secret profile status; do not print the token Log in again with --replace so metadata and keychain state are written together
The terminal works but the desktop host cannot authenticate The host runs as another OS user or cannot access the same keychain backend Compare the host OS account and --profile value with the terminal session Store a credential for that OS user or pass a dedicated service credential through an isolated environment; do not put it in a transcript
The process starts and waits with no output This is usually normal stdio behavior Confirm the host shows the server as connected and can list tools Let the MCP host own standard input/output. Do not expect an interactive prompt from teamgrid-mcp
A documented tool is missing The selected tool profile does not advertise it Check the server --tool-profile argument and the tool’s Available in profiles in the reference Select the narrowest required profile and restart the host; core has 22, collaboration 29, governance 28, and all 36 tools
A tool is visible but returns an API error such as insufficient_scope The API rejected the request because of scope, resource grant, tenant state, rate limit, or an upstream failure Verify the required scope on the tool reference page and run teamgrid auth status --check Correct the credential or requested resource. The returned detail is redacted; never enable a broader profile merely to diagnose it
The host rejects arguments before calling TeamGrid The exact MCP JSON Schema rejected the input Compare arguments with the tool’s input schema Remove unknown properties and correct required values, enum choices, lengths, or list limits
A list call returns result_too_large Serialized structured content exceeded 256 KiB Check limit and filters in the approved arguments Request a smaller page or narrower filters. Continue with the opaque cursor only when another page is required
A list repeats or skips data A cursor was altered, decoded, or reused with incompatible filters Compare the cursor flow and filters without logging the whole result Start the listing again, keep filters stable, and pass meta.page.nextCursor back unchanged
Results come from an unexpected workspace or region The selected credential profile points to another tenant, region, or cell Call only teamgrid_workspace_get and inspect its returned tenant metadata Stop reading business data, choose the intended CLI profile, verify it with teamgrid auth status --check, and restart the host
Product purchase prices are absent Intentional MCP redaction Check the product tool description Use a governed API, SDK, or CLI workflow with the appropriate finance overlay; the preserved read profiles remove purchasePrice; finance profiles require the declared finance scopes
A webhook signing secret is absent Reveal-once secrets are forbidden in MCP Check the webhook tool description Rotate or retrieve reveal-once material only through an explicitly governed API, SDK, CLI, or TeamGrid UI workflow; never put it in an AI transcript
all still does not show writes, audit events, files, exports, or change-feed tools Intentional product boundary Review tools and security all retains 36 curated reads. In version 1.2.2, explicitly select a suitable domain profile or full for additional business tools; the change feed stays API/SDK/CLI-only
TEAMGRID_API_TOKEN appears ignored or points to the wrong cell Environment credentials override the named keychain credential Inspect only whether the variable is present, never its value Remove unintended host environment overrides or supply the intended dedicated token together with the correct regional base URL

Tool errors versus startup errors

authentication_required, credential_expired, profile_credential_mismatch, and invalid command arguments prevent the stdio server from starting. They are printed before the process waits for MCP input.

After the server is connected, TeamGrid request failures use a stable MCP error envelope:

{
  "error": {
    "code": "insufficient_scope",
    "detail": "<redacted TeamGrid request error>",
    "status": 403
  }
}

API and SDK errors preserve their valid machine-readable code. When available, the envelope also contains status, a safe requestId, and valid retryAfterMs without shortening the server delay. Unknown failures use teamgrid_request_failed; malformed upstream codes fall back to teamgrid_api_error or teamgrid_client_error. MCP also sets isError: true.

Oversized results use result_too_large. Schema validation errors are produced by the MCP protocol layer before the TeamGrid handler runs, so their display varies by host.

Information safe to share with support

Share the MCP server version, CLI version, Node.js version, operating system, selected profile name, selected tool profile, tool name, non-secret arguments, timestamp, and redacted error detail. The API response metadata may contain a request ID that is safe and useful for tracing.

Never share an API token, browser authorization code, PKCE verifier, webhook signing secret, Authorization header, credential-store contents, or an unreviewed tool transcript. If accidental exposure is possible, revoke or rotate the affected credential before continuing diagnostics.

Write and OAuth failures

Symptom Resolution
The hosted catalog still contains only the earlier reads Refresh connection metadata in ChatGPT and start a new conversation; check the regional /mcp URL
A write is absent from local core or all Choose an explicit write profile and review scopes; all means 36 preserved reads
workspace_mismatch Confirm teamgrid_workspace_get and use its exact workspace ID; no change was sent
resource_cas_required Report the server and API release to support; do not bypass the revision requirement
Missing revision (428) or stale revision (412) Read the target and copy its exact quoted meta.etag; review a conflicting change before a new decision
429 or a safe retryAfterMs Honor the full delay within your deadline; inspect uncertain writes before retrying
private_resource_unavailable Check current read scopes, creating-credential access, export completion and the 1 MiB limit; use an authorized transfer workflow for larger content
A host cannot open teamgrid:// content The host may not implement resources/read; tool metadata access alone cannot retrieve private bytes

The table below covers consent and outcome recovery.

Outcome Next step
Additional scopes requested Review the exact requested operation and consent; sensitive scopes require passkey confirmation
ChatGPT asks to reconnect after one or two minutes, especially before a new domain read or write Check the connection’s approved scopes and the tool’s requirements; a generic reconnect message can accompany a permission failure. See early reconnect prompts
Workspace, role or sharing denial Correct access in TeamGrid; broader OAuth scopes cannot bypass it
Revision conflict Read the current resource, compare the change and decide again
Unknown commit after timeout Inspect the resource or operation status before any retry
Accepted asynchronous job Use the returned status tool and ID; acceptance is not completion
Provider unavailable (503) Retry within your deadline; do not replace or widen a credential to diagnose an outage
Revoked or expired remote connection Reconnect through the host and review the workspace and scopes again
OAuth authorization opens ordinary tasks instead of a consent screen Report the App version and request time to TeamGrid; this is a failed authorization flow, not a completed connection
ChatGPT cannot register its OAuth client Check approved client metadata, authentication-method negotiation and the exact callback; do not widen origins or bypass PKCE
The confirmation reports an invalid sign-in session (security-session-changed or security-session-unavailable) Sign out on TeamGrid’s central sign-in page, sign in again, then start a new connection request in the MCP host
A fresh sign-in still produces a briefly opening popup; support finds Invalid developer confirmation after successful preparation This can be a TeamGrid App clock-skew defect before the passkey prompt. Report the App version and request time; retry a new request after the corrected App is available
A fresh request immediately closes its popup with the generic connection-failure message, before a passkey prompt Share the request time, region and selected workspace with support. A workspace-routing defect can reject the confirmation before passkey authentication starts; repeated sign-ins cannot correct that server defect
The authorization request has expired Start a new request in the MCP host; an old consent URL cannot renew the request
The popup says This request is unavailable for this account. Return to the original window. Check the intended signed-in account and start a fresh request in the MCP host. This message does not establish that a workspace has no Passkey; see account and region confirmation
Private resource exceeds 1 MiB Use the authorized App or CLI transfer workflow; never request a secret download URL in chat

Early ChatGPT reconnect prompts

The initial hosted grant contains workspace:read; that permission does not authorize task, project or member reads, or any write. A visible tool catalog is not a list of permissions already granted to your connection. See who chooses the permissions.

TeamGrid access tokens currently last up to five minutes. ChatGPT should renew them while the underlying OAuth grant remains active. A successful renewal retains the token’s scopes; it cannot turn a workspace-only grant into a task write grant. Repeated refresh attempts therefore cannot resolve missing consent.

If a reconnect prompt appears before a new operation:

  1. Check the selected workspace and the permissions approved for that connection in Settings → Team → Developer Center → Access.
  2. Compare those scopes with the requested tool’s reference. Review any new TeamGrid consent screen; do not grant unrelated permissions to diagnose the issue.
  3. If ChatGPT keeps requesting reconnection without showing the needed scopes, report the operation, approximate time and region to TeamGrid support. Support can distinguish an active grant with insufficient scopes from an expired or revoked grant using token lifecycle and HTTP challenge evidence.

An HTTP401 invalid_token, an HTTP403 insufficient_scope, a business permission denial and an HTTP503 provider outage require different remedies. Cookie deletion or extending token lifetimes does not correct a missing OAuth permission. Never send access or refresh tokens, authorization codes, cookies or Passkey assertions to support. No business write is needed to diagnose this boundary.

Confirmation closes before a passkey prompt

A briefly opening confirmation window does not establish that the browser cannot use passkeys. When TeamGrid reports an invalid sign-in session, the confirmation stopped before the passkey transport was issued. A workspace handoff can retain an older central sign-in session whose security state is no longer valid.

  1. Use Sign out and sign in again when the consent screen offers it. Otherwise, sign out on TeamGrid’s normal central sign-in page.
  2. Sign in normally with the intended account. Confirm that this account belongs to the required workspace; the workspace picker shows only workspaces it can access.
  3. Start a new connection request from the MCP host and review its workspace and scopes again.
  4. Complete the normal passkey confirmation if requested.

The session-specific recovery message is included in the deployed Production App release. Other permission, workspace or routing errors can produce the generic connection-failure message; do not treat that message alone as proof of a session failure. An expired request must be restarted in the host. Refreshing an old consent URL or switching browsers does not renew it. Keep session validation and passkey confirmation enabled throughout recovery.

A separate Staging failure on 1 October 2026 occurred after the server successfully issued the confirmation transport. A small difference between server and browser clocks caused the App to reject that valid response before displaying the passkey page. Signing in again or switching browsers does not correct this App defect. The correction keeps server expiry authoritative and bounds the browser’s wait independently of its wall clock; it is included in the deployed Production App release.

Support can distinguish these failures using the preparation result without collecting cookies, transport tokens, authorization codes or passkey assertions.

A workspace-routing failure can also stop the confirmation before a passkey prompt. When a proxy loses the original workspace host on the realtime connection, TeamGrid cannot validate that connection against the signed-in workspace. Support must check the actual App release and host routing; the correction must retain workspace isolation and session validation. Do not disable passkey confirmation, change the selected workspace or grant broader scopes to work around it.

Passkeys and workspaces in different regions

A Passkey belongs to your TeamGrid account, not to each workspace. A US-hosted workspace can therefore request confirmation on TeamGrid’s central sign-in page at login.teamgrid.app. You do not need to register another Passkey in that workspace. The confirmation still belongs to the selected workspace and the exact permissions shown in the original request.

The message “This request is unavailable for this account. Return to the original window.” means that the confirmation cannot be matched to the current account, session and request. An expired request, a different signed-in account or a regional session-routing problem can reach this boundary before a Passkey is requested. The message alone cannot identify which condition caused it.

  1. Return to the original connection window. If TeamGrid offers a new sign-in, use the intended account and its normal central sign-in method.
  2. If the request expired, restart the connection in ChatGPT or your MCP host. Refreshing or reopening the old popup cannot renew it.
  3. Check the selected workspace and permissions, then confirm the new request.
  4. If a fresh request still fails, share the time, selected region and workspace with support. Support must verify the regional transport and session binding; copying Passkeys between workspaces or repeatedly clearing cookies cannot correct a server-routing defect.

Do not send the consent URL, browser session, authorization code or Passkey assertion to support. Keep account confirmation and workspace permissions enabled.

Stable documentation · Developer Experience · Reviewed 2026-10-02Edit this page ↗
Documentation feedbackWas this page useful?
Esc

Search TeamGrid Developer

Find guides, concepts and every API operation.