Type MCP
Type MCP lets supported AI clients work with your Type workspace through a hosted, OAuth-protected Model Context Protocol server. It does not require the Type CLI, a local process, or an API key.
Install Type MCP
Section titled “Install Type MCP”For Claude, open the one-click installer:
Claude will ask you to review the connector, sign in to Type, select an organization, and approve the connection.
To configure a supported MCP client manually, use this server URL:
https://api.type.com/mcpThe client must support remote Streamable HTTP MCP servers and OAuth.
Available actions
Section titled “Available actions”Type MCP can:
- Show the signed-in Type identity and selected organization.
- List regular product Spaces in the selected organization.
- List the Channels inside an accessible Space.
- Search workspace-native messages, threads, Spaces, people, files, docs, and apps.
- List accessible threads across the organization by creation time or recent activity.
- Filter threads by Space and Channel.
- Read one thread or hydrate up to 10 candidate threads with bounded text output.
- List organization-wide skills or skills attached to a Space.
- Inspect a skill and its packaged files.
- Create a skill package.
- Update an existing skill package when given its skill ID.
Spaces, Channels, and stable IDs
Section titled “Spaces, Channels, and stable IDs”Use type_spaces_list to list the Spaces visible to you. It exposes regular product Spaces, not alert feeds, direct-message containers, or dedicated Sidekick Spaces. Each result includes a stable Space id, its visibility, and an isMember value. Pass the exact ID as spaceId to other tools; do not derive an ID from a Space name, slug, or URL.
The list can include a public Space with isMember: false. You may read that public Space’s threads, but member-only operations remain unavailable. Use type_channels_list only with the ID of a Space where isMember: true to list its Channels. Each result includes its stable Channel id, owning spaceId, name, slug, and isDefault state. A Channel ID is only valid with its owning Space ID.
Every Space has a default destination shown as Threads. type_channels_list returns it with name: "Threads" and isDefault: true while preserving its stable ID and persisted slug. Use isDefault, not the name or slug, to identify it.
| Tool | Required input | Result |
|---|---|---|
type_spaces_list | None | Visible regular Spaces, stable IDs, and membership state. |
type_channels_list | Member Space spaceId | Active Channels in that Space, including Threads. |
Find and read threads
Section titled “Find and read threads”For workspace retrieval, start with type_search_workspace when the user supplied a topic. Use type_threads_recent for newest or recently active thread questions without a query; its default is creation-time order. Then call type_threads_batch for several candidate thread IDs or type_thread_get for one.
type_threads_list uses a flat Space-scoped input. It requires spaceId and accepts an optional channelId:
{ "spaceId": "space-id", "channelId": "channel-id" }type_threads_recent uses an optional nested scope. Omit scope for recent threads across the organization. Pass only spaceId for every Channel in one Space, or include that Space’s channelId to narrow the result:
{ "scope": { "spaceId": "space-id" } }{ "scope": { "spaceId": "space-id", "channelId": "channel-id" } }type_threads_recent does not accept top-level spaceId or channelId. The nested shape ensures that a Channel is always paired with its owning Space.
For either tool, omitting channelId means all threads in the selected scope, not only Threads. To select only the default Threads destination, pass the stable ID of the isDefault: true item returned by type_channels_list.
Thread reads follow Space visibility. You may list or read threads in a public Space even when its type_spaces_list result has isMember: false. Private Space threads remain available only to members.
Thread results and location-bearing search results use a normalized location:
{ "location": { "space": { "id": "space-id", "name": "Product", "slug": "product" }, "placement": { "type": "threads" } }}Named Channel placement includes the Channel’s stable identity:
{ "location": { "space": { "id": "space-id", "name": "Product", "slug": "product" }, "placement": { "type": "channel", "channel": { "id": "channel-id", "name": "Launch", "slug": "launch" } } }}Search and recent-thread results also include stable thread IDs, web URLs, and pagination metadata. Thread tools return citation URLs and truncation metadata.
Work with skills
Section titled “Work with skills”Skills can be organization-wide or attached to a Space. They are not attached to an individual Channel because every Channel shares its Space’s skills. A Space-scoped target requires isMember: true for that Space.
Use one of these exact targets with type_skills_list, type_skills_push, or type_skills_sync:
{ "scope": "global" }{ "scope": "space", "spaceId": "space-id-returned-by-type_spaces_list" }Skill creation and updates are write actions. Review the proposed package and stable Space target in your MCP client before approving them.
Authentication and organization access
Section titled “Authentication and organization access”Type MCP uses OAuth. The organization selected during sign-in scopes the connector token, and Type does not send an API key to the MCP client.
| Operation | Public Space with isMember: false | Space member |
|---|---|---|
| Discover the Space | Allowed | Allowed |
| Read its threads | Allowed | Allowed |
| List its Channels | Not allowed | Allowed |
| List, create, or update Space-scoped skills | Not allowed | Allowed |
Private Spaces are not exposed to non-members.
To use a different organization, disconnect Type in the client’s connector settings, add it again, and select the new organization during sign-in.
To disconnect Type, remove it from the client’s connector settings. The client owns the saved OAuth connection.
Type MCP or Type CLI?
Section titled “Type MCP or Type CLI?”Use Type MCP when you want a supported AI client to work with Type through a hosted connection with no local installation.
Type MCP is also the right choice when an agent runs in a cloud-hosted environment, including Claude Cowork in cloud mode. Cloud compute cannot rely on a type-cli binary installed on your machine.
Use the Type CLI when the workflow depends on your local machine, including:
- Syncing local skill folders with persistent file mappings and dry runs.
- Creating, syncing, or pulling Type documents from local Markdown files.
- Moving local Claude or Codex sessions into Type threads.
- Running Type operations from shell scripts.
Troubleshooting
Section titled “Troubleshooting”- Type organization access denied: Your membership is inactive, the selected organization is unavailable, or Type MCP has not been enabled for that workspace. Ask a Type workspace administrator.
- Authentication service unavailable: Retry after a short delay. Type could not verify the connector token.
- Space membership required:
type_spaces_listcan return public Spaces withisMember: false. Join the Space before listing its Channels or using it as a Space-scoped skill target. Public thread reads do not require membership. - Space or Channel not found: Call
type_spaces_list, thentype_channels_list, and pass the returned stable IDs without changing them. Confirm the Channel belongs to the selected Space. - Skill package rejected: Use non-empty names and handles, unique relative file paths, and no absolute paths or
./..path segments.