cowork.te-consulting.at/api/den is an internal same-origin desktop proxy used by TEC-CoWork first-party flows. Do not paste it into external MCP clients.
Set up your client
Step-by-step guides for every client:OpenCode
Claude Code
Codex
Claude Desktop
ChatGPT
Cursor
VS Code
Windsurf
Zed
Gemini CLI
In the TEC-CoWork desktop app
If you use the TEC-CoWork desktop app, there is no MCP endpoint to configure. When you sign in, the app injects TEC-CoWork Connect with access scoped to your active organization and refreshes that first-party access automatically. UseSettings > Connect to sign in to the services available to you.
Client support status
OpenCode setup
Add this MCP entry to your OpenCode config:Codex setup
Codex is setup-only for this PR until its native OAuth flow is rerun on this exact branch. Add TEC-CoWork, then log in:Cursor setup-only guide
Paste the TEC-CoWork Connect endpoint where Cursor asks for the remote MCP server URL, then start OAuth from Cursor’s connection prompt:cursor://anysphere.cursor-mcp/oauth/callback, which TEC-CoWork accepts through an exact allowlist with PKCE S256 enforced, so intercepted authorization codes cannot be redeemed without the code verifier.
Full guide: TEC-CoWork MCP for Cursor.
ChatGPT setup-only guide
Open ChatGPTSettings > MCP servers (open settings), paste the TEC-CoWork Connect endpoint, and start OAuth from ChatGPT’s connection prompt:
Organization selection
The organization you choose in the browser is pinned into the token. Changing the active organization in TEC-CoWork later does not change an external client’s existing token. Use the logout/auth or logout/login reconnect commands above when you need a different organization.What you can ask the agent
Once connected, your agent can use TEC-CoWork capabilities from plain English in the composer. These flows are exercised end to end against a live TEC-CoWork Cloud deployment (seeevals/cloud-mcp-agent-flows.md in the repository):
- Check your cloud identity — “Which TEC-CoWork Cloud organization am I connected to?” The agent reports the organization, your account, and your role.
- Invite teammates — “Add omar@example.com to my organization.” The agent sends the invitation, updates the allowed email domains when needed, and surfaces seat-limit billing rules instead of failing silently.
- Manage teams — “Assign Priya to the Sales team.” Works for active members; the agent explains when someone still has a pending invitation.
- Share skills with your org — “Create a skill that writes weekly status
reports and share it with my whole organization.” The agent writes the
SKILL.mdlocally, then creates a plugin, attaches the skill, publishes it to your marketplace, and grants org-wide access — teammates see it in their marketplace and install it with one click.
OAuth and protocol details
TEC-CoWork Connect is a remote Streamable HTTP MCP server with OAuth:- The protected resource is exactly
https://api.cowork.te-consulting.at/mcp/agent. - Clients discover OAuth metadata with RFC9728 protected-resource discovery.
- The authorization server and browser sign-in origin is
https://cowork.te-consulting.at/api/auth. - OAuth authorize and token requests must include exactly one
resourcevalue:https://api.cowork.te-consulting.at/mcp/agent. - Clients that need registration use dynamic client registration as a fallback during discovery.
- PKCE is required for public/dynamic clients, and only the
S256code challenge method is supported. - Redirect URIs must be HTTPS callbacks or HTTP loopback callbacks such as
http://127.0.0.1:<port>/callback. Private-use callback schemes are not accepted for public OAuth clients, except exact allowlisted callbacks for known native clients — currently Cursor Desktop’scursor://anysphere.cursor-mcp/oauth/callback— with PKCE S256 enforced.
Token lifetime and refresh
Clients normally refresh automatically. The values matter when diagnosing reconnects:- Public OAuth access tokens are JWTs signed and validated with EdDSA. The issuer is exactly
https://cowork.te-consulting.at/api/auth, the audience is exactlyhttps://api.cowork.te-consulting.at/mcp/agent, and access tokens expire after 45 minutes. - Refresh tokens are opaque rotating grants with a 30-day inactivity window and a 30-second rotation overlap for near-simultaneous refreshes.
- Each refresh revokes the previous refresh grant; because TEC-CoWork stores only token hashes, a replay during the overlap can issue another successor instead of returning prior plaintext.
- Successor grants remain normal rotating grants. If an old refresh grant is replayed after the overlap, expired, or revoked, the client may receive
invalid_grantand the client/user refresh-token family is revoked. Reconnect by logging out of the MCP entry and authenticating again. - Access is rechecked against the active TEC-CoWork session and organization membership, so removing a member or revoking the session cuts off MCP access.
What the server exposes
/mcp/agent exposes two MCP tools:
search_capabilitiessearches the capabilities available to the signed-in member.execute_capabilityruns an exact capability name returned bysearch_capabilities.
Troubleshooting
- 401 missing or invalid token: run the client’s auth/login command again. Confirm the client points to
https://api.cowork.te-consulting.at/mcp/agent. - 403 membership or scope error: confirm you selected the right organization and still have membership and required permissions there.
invalid_grant: the refresh grant was expired, revoked, or replayed after the 30-second rotation overlap. Run logout, then auth/login again.- 429 rate limit: wait for the response’s
Retry-Aftervalue before retrying. - Support requests: include the response
X-Request-Idheader plus any JSON body MCPreferenceIdor OAuthreference_idfield so TEC-CoWork support can find the server-side trace.
Requirements
- An TEC-CoWork Cloud account and organization.
- An MCP client that supports remote Streamable HTTP MCP servers.
- OAuth support in the MCP client, including browser-based authorization.