Skip to content
Changelog

Report a bug

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.

For Claude, open the one-click installer:

Connect Type to Claude

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/mcp

The client must support remote Streamable HTTP MCP servers and OAuth.

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.

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.

ToolRequired inputResult
type_spaces_listNoneVisible regular Spaces, stable IDs, and membership state.
type_channels_listMember Space spaceIdActive Channels in that Space, including 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.

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.

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.

OperationPublic Space with isMember: falseSpace member
Discover the SpaceAllowedAllowed
Read its threadsAllowedAllowed
List its ChannelsNot allowedAllowed
List, create, or update Space-scoped skillsNot allowedAllowed

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.

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.
  • 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_list can return public Spaces with isMember: 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, then type_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.