Repository avatar
Search & Data Extraction
v1.0.0
active

mcp

space.code4/mcp

Issues, code reviews, CI/CD, deployments, docs and team knowledge search in Code4.

Documentation

Code4

Code4 MCP server

Connect Claude, ChatGPT, Cursor, VS Code, Gemini CLI and other AI assistants to your Code4 workspace.

Code4 is one workspace for small software teams: issues and boards, git hosting and code review, CI/CD pipelines, deployments to your own Kubernetes, documents, chat and calls. Everything the team writes is indexed into one knowledge base that answers under each person's own permissions.

The Code4 MCP server is a hosted Model Context Protocol server. With it, your AI assistant works with your issues, code reviews, repositories, pipelines, deployments and documents, and searches what your team discussed and decided, as you and with your permissions.

This repository holds the public listing files for MCP directories and clients: server.json, plugin manifests, icons and this guide. The server itself is hosted by Code4; there is nothing to install or run locally.

Server URLhttps://mcp.code4.space/mcp
TransportStreamable HTTP
Sign-inOAuth 2.1 with your Code4 account
Recommended server namec4
Registry namespace.code4/mcp
Toolsmore than 200

Contents

Before you start

  • You need a Code4 account and membership in at least one organization. Sign up if you do not have one.
  • Your AI client must support remote MCP servers over Streamable HTTP with OAuth sign-in. Code4 does not accept a static token in a header, so clients that only support API keys cannot connect.
  • If you add the server by hand, name it c4. The ready-made commands and prompts that Code4 gives you for coding agents call the tools as mcp__c4__*. When you install Code4 from a client's directory or as a plugin, the client picks the name, and that is fine.

Ready-made commands are also in the Code4 app under Preferences → AI Integrations.

Current status: sign-in works today for Claude (claude.ai, Claude Desktop and Claude Code). Sign-in for ChatGPT, Cursor, VS Code and the other clients below is opening soon; until then they cannot complete the OAuth step.

We test new client versions as they come out. If a client below does not connect, write to support@code4.space with the client name and version.

Connect your client

On first use, your client opens a browser window with the Code4 sign-in page. Sign in, then approve access on the consent screen. The name shown on the consent screen is the name the client gave itself.

Claude Code

claude mcp add --scope user --transport http c4 https://mcp.code4.space/mcp

Then run /mcp in Claude Code, select c4 and choose Authenticate. --scope user makes the server available in every project, not only in the current folder.

You can also install it as a Claude Code plugin from this repository:

/plugin marketplace add code4-space/mcp
/plugin install code4@code4

Claude (web, desktop and mobile)

  1. Open Customize → Connectors, click + Add, then Add custom connector.
  2. Name: Code4. Remote MCP server URL: https://mcp.code4.space/mcp.
  3. Under Advanced settings → OAuth client, choose Register automatically.
  4. Click Connect and sign in to Code4.

On Team and Enterprise plans, an Owner first adds the connector in Organization settings → Connectors. Turn the connector on for a conversation from the + menu → Connectors. Connectors you add in Claude on the web also work in Claude Desktop and the mobile apps.

ChatGPT

  1. Open Settings → Apps → Advanced settings and turn on Developer mode.
  2. In Settings → Apps, click Create app.
  3. Name: Code4. MCP server URL: https://mcp.code4.space/mcp. Authentication: OAuth.
  4. Sign in to Code4 when asked.

To use it, choose Developer mode from the + menu in a conversation and select Code4. Developer mode availability depends on your ChatGPT plan.

Codex CLI

codex mcp add c4 --url https://mcp.code4.space/mcp
codex mcp login c4

If sign-in fails at the client registration step, run codex mcp login c4 --oauth-client-registration dcr.

Cursor

Add to Cursor

The button opens Cursor with this deeplink. You can also paste it into your browser:

cursor://anysphere.cursor-deeplink/mcp/install?name=c4&config=eyJ1cmwiOiJodHRwczovL21jcC5jb2RlNC5zcGFjZS9tY3AifQ%3D%3D

Or add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "c4": { "url": "https://mcp.code4.space/mcp" }
  }
}

Open Cursor Settings → MCP and click Connect next to c4 if Cursor asks you to sign in.

VS Code (GitHub Copilot)

Install in VS Code

The button opens VS Code with this install link:

vscode:mcp/install?%7B%22name%22%3A%22c4%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.code4.space%2Fmcp%22%7D

For VS Code Insiders, replace vscode: with vscode-insiders:.

Or from the command line:

code --add-mcp '{"name":"c4","type":"http","url":"https://mcp.code4.space/mcp"}'

Or in .vscode/mcp.json:

{
  "servers": {
    "c4": { "type": "http", "url": "https://mcp.code4.space/mcp" }
  }
}

VS Code sends at most 128 tools per request. Code4 has more, so open Configure Tools in the chat view and keep the groups you need.

Gemini CLI

Install the extension from this repository:

gemini extensions install https://github.com/code4-space/mcp

Or add the server directly:

gemini mcp add --transport http c4 https://mcp.code4.space/mcp

Or in ~/.gemini/settings.json:

{
  "mcpServers": {
    "c4": { "httpUrl": "https://mcp.code4.space/mcp" }
  }
}

Gemini CLI opens the sign-in page the first time it calls a Code4 tool.

Devin Desktop (formerly Windsurf)

Add this to ~/.config/devin/mcp_config.json (on Windows, %APPDATA%\devin\mcp_config.json):

{
  "mcpServers": {
    "c4": { "url": "https://mcp.code4.space/mcp" }
  }
}

Versions released as Windsurf read ~/.codeium/windsurf/mcp_config.json and use serverUrl instead of url:

{
  "mcpServers": {
    "c4": { "serverUrl": "https://mcp.code4.space/mcp" }
  }
}

When the server shows Needs auth, click Authenticate.

Zed

Add this to your Zed settings.json:

{
  "context_servers": {
    "c4": { "url": "https://mcp.code4.space/mcp" }
  }
}

Zed starts the sign-in flow on its own.

Cline

In MCP Servers → Configure, add this to cline_mcp_settings.json:

{
  "mcpServers": {
    "c4": { "type": "streamableHttp", "url": "https://mcp.code4.space/mcp" }
  }
}

The type must be exactly streamableHttp. See also llms-install.md.

Other clients

Any client that supports remote MCP servers with OAuth can connect. Most accept this configuration:

{
  "mcpServers": {
    "c4": { "type": "http", "url": "https://mcp.code4.space/mcp" }
  }
}

How sign-in works

  • The server answers an unauthenticated request with 401 and a WWW-Authenticate header that points to its OAuth protected resource metadata: https://mcp.code4.space/.well-known/oauth-protected-resource/mcp.
  • The metadata names the Code4 authorization server.
  • Your client registers itself there automatically (Dynamic Client Registration), then signs you in with the authorization code flow and PKCE (S256). Requested scopes: openid profile email offline_access.
  • You sign in with your Code4 account and approve access on the consent screen. Your client stores the tokens; the configuration never contains a key or a password.
  • Personal access tokens work with the Code4 API, not with the MCP server.

Tools

The server has more than 200 tools. Each tool has a human-readable title and MCP annotations: read-only tools carry readOnlyHint, and tools that change data that is hard to restore carry destructiveHint. The lists below are grouped by area; read marks a read-only tool, write marks a tool that changes data.

Issues (40)
ToolTitleKind
list_issuesList issuesread
get_issueGet issueread
list_issue_statusesList issue statusesread
create_issueCreate issuewrite
create_subtaskCreate subtaskwrite
create_subtasksCreate subtasks in bulkwrite
set_issue_parentsSet issue parentswrite
list_checklistList issue checklistread
add_checklistAdd checklist itemswrite
complete_checklist_itemsCheck off checklist itemswrite
update_checklist_itemUpdate checklist itemwrite
delete_checklist_itemDelete checklist itemwrite
promote_checklist_itemTurn checklist item into issuewrite
update_issueUpdate issuewrite
comment_issueComment on issuewrite
list_issue_commentsList issue commentsread
update_issue_commentEdit my issue commentwrite
delete_issue_commentDelete my issue commentwrite
toggle_reactionToggle reactionwrite
list_boardsList boardsread
list_issue_boardsList boards of an issueread
add_issue_to_boardAdd issue to boardwrite
remove_issue_from_boardRemove issue from boardwrite
bulk_update_issuesUpdate issues in bulkwrite
bulk_delete_issuesDelete issues in bulkwrite
delete_issueDelete issuewrite
list_deleted_issuesList deleted issuesread
restore_issueRestore deleted issuewrite
purge_issuePermanently erase issuewrite
list_project_tagsList project tagsread
move_issueMove issue to another projectwrite
list_issue_code_linksList issue code linksread
link_issue_codeLink code to issuewrite
unlink_issue_codeUnlink code from issuewrite
list_issue_watchersList issue watchersread
add_issue_watcherAdd issue watcherwrite
remove_issue_watcherRemove issue watcherwrite
list_description_versionsList issue history versionsread
get_description_versionGet issue history versionread
restore_description_versionRestore issue history versionwrite
Issue fields, statuses and boards (22)
ToolTitleKind
list_issue_fieldsList issue fieldsread
create_issue_fieldCreate issue fieldwrite
update_issue_fieldUpdate issue fieldwrite
delete_issue_fieldDelete issue fieldwrite
reorder_issue_fieldsReorder issue fieldswrite
add_issue_field_optionAdd issue field optionwrite
update_issue_field_optionUpdate issue field optionwrite
delete_issue_field_optionDelete issue field optionwrite
reorder_issue_field_optionsReorder issue field optionswrite
set_issue_custom_valuesSet issue custom field valueswrite
create_issue_statusCreate issue statuswrite
update_issue_statusUpdate issue statuswrite
delete_issue_statusDelete issue statuswrite
reorder_issue_statusesReorder issue statuseswrite
get_status_usageGet issue status usageread
reassign_issue_statusMove all issues to another statuswrite
get_boardGet boardread
create_boardCreate boardwrite
update_boardUpdate boardwrite
set_board_columnsSet board columnswrite
delete_boardDelete boardwrite
set_card_rankReorder board cardwrite
Sprints (9)
ToolTitleKind
list_sprintsList sprintsread
create_sprintCreate sprintwrite
update_sprintUpdate sprintwrite
start_sprintStart sprintwrite
complete_sprintComplete sprintwrite
delete_sprintDelete sprintwrite
add_issue_to_sprintAdd issue to sprintwrite
remove_issue_from_sprintRemove issue from sprintwrite
carry_over_sprint_issuesCarry over sprint issueswrite
Code review (24)
ToolTitleKind
list_code_reviewsList code reviewsread
get_code_reviewGet code reviewread
get_code_review_diffGet full code review diffread
get_review_outlineGet code review outlineread
get_code_review_changesList code review changed filesread
get_code_review_commitsList code review commitsread
get_code_review_messageGet code review messageread
get_code_review_messagesList code review discussionread
get_review_patchGet code review patchread
get_review_merge_policyCheck if code review can mergeread
list_review_viewed_filesList viewed review filesread
list_review_issuesList issues linked to reviewread
create_code_reviewCreate merge requestwrite
reply_code_reviewReply in code reviewwrite
set_review_file_viewedMark review file as viewedwrite
set_code_review_statusSet code review statuswrite
set_code_review_reviewersSet code review reviewerswrite
add_code_review_reviewerAdd code review reviewerwrite
remove_code_review_reviewerRemove code review reviewerwrite
set_my_review_statusSet my reviewer verdictwrite
finish_review_workHand review back to reviewerswrite
resume_review_workTake review back to fixwrite
merge_code_reviewMerge code reviewwrite
delete_code_reviewDelete code reviewwrite
Repositories and code (21)
ToolTitleKind
get_repositoryGet repositoryread
get_repository_urlGet repository clone URLread
list_branchesList branchesread
get_branchGet branchread
list_refsList branches and tagsread
list_commitsList commitsread
get_commit_diffGet commit diffread
get_commit_patchGet commit patchread
compare_refsCompare branches or commitsread
list_repo_filesList repository directoryread
read_repo_fileRead repository fileread
search_repo_filesSearch repository files by pathread
search_repo_codeSearch repository coderead
find_symbolFind symbol definitionread
list_file_commitsList file historyread
blame_repo_fileBlame repository fileread
explain_code_historyExplain code historyread
commit_repo_filesCommit files to repositorywrite
merge_branchMerge branch without reviewwrite
rebase_branchRebase branchwrite
delete_branchDelete branchwrite
CI/CD pipelines (10)
ToolTitleKind
list_pipelinesList pipelinesread
list_pipeline_runsList pipeline runsread
get_pipeline_runGet pipeline runread
get_step_logsGet pipeline step logsread
get_run_logsGet pipeline run logsread
get_run_testsGet pipeline run test resultsread
run_pipelineRun pipelinewrite
cancel_pipeline_runCancel pipeline runwrite
rerun_pipeline_runRerun pipeline runwrite
rerun_stepRerun pipeline stepwrite
Environments and deployments (19)
ToolTitleKind
list_environmentsList environmentsread
list_deploymentsList deploymentsread
get_deploymentGet deploymentread
get_deployment_changesGet deployment changesread
preview_deploymentPreview deploymentread
preview_rollbackPreview service rollbackread
compare_environmentsCompare environmentsread
get_service_declarationGet service declarationread
get_service_operationsList service operationsread
get_service_operationGet service operationread
get_service_podsGet service podsread
get_service_logsGet service logsread
deploy_serviceDeploy servicewrite
approve_deploymentApprove deploymentwrite
rollback_serviceRoll back servicewrite
restart_serviceRestart servicewrite
scale_serviceScale servicewrite
promote_environmentPromote between environmentswrite
update_environment_configReplace environment configwrite
Packages and secrets (7)
ToolTitleKind
list_packagesList packagesread
list_package_versionsList package versionsread
list_package_filesList package filesread
get_package_download_urlGet package download linkread
list_secretsList secret namesread
set_secretSet secretwrite
delete_secretDelete secretwrite
Documents (18)
ToolTitleKind
list_document_foldersList document foldersread
list_documentsList documentsread
get_documentGet documentread
list_document_revisionsList document revisionsread
get_document_revisionGet document revisionread
create_documentCreate documentwrite
update_documentUpdate documentwrite
move_documentMove documentwrite
archive_documentArchive documentwrite
restore_documentRestore documentwrite
delete_documentDelete documentwrite
restore_document_revisionRestore document revisionwrite
create_document_folderCreate document folderwrite
rename_document_folderRename document folderwrite
move_document_folderMove document folderwrite
archive_document_folderArchive document folderwrite
restore_document_folderRestore document folderwrite
delete_document_folderDelete document folderwrite
Knowledge and calls (7)
ToolTitleKind
search_knowledgeSearch team knowledgeread
get_entity_contextGet full context of an itemread
get_threadGet conversation threadread
list_relatedList related itemsread
find_by_referenceFind by key or referenceread
read_call_transcriptRead call transcriptread
read_call_analysisRead call summaryread
Projects, people, agent rules and skills (21)
ToolTitleKind
whoamiGet my profileread
find_peopleFind people by nameread
resolve_peopleResolve people by IDread
list_projectsList projectsread
get_projectGet projectread
list_project_membersList project membersread
list_repositoriesList repositoriesread
create_projectCreate projectwrite
update_projectUpdate project and memberswrite
create_repositoryCreate repositorywrite
get_platform_guideGet platform guideread
get_organization_rulesGet organization rules for agentsread
get_project_rulesGet project rules for agentsread
set_organization_rulesSet organization rules for agentswrite
set_project_rulesSet project rules for agentswrite
list_skillsList team skillsread
get_skillGet team skillread
read_skill_fileRead team skill fileread
create_skillCreate team skillwrite
update_skillUpdate team skillwrite
delete_skillDelete team skillwrite
Personal to-dos and time tracking (17)
ToolTitleKind
list_todoList my to-dosread
list_todo_historyList completed to-dosread
create_todoCreate to-dowrite
update_todoUpdate to-dowrite
complete_todoComplete to-dowrite
reopen_todoReopen to-dowrite
reorder_todoReorder to-doswrite
delete_todoDelete to-dowrite
convert_todo_to_issueConvert to-do to issuewrite
list_time_entriesList time entriesread
get_current_timerGet my running timerread
log_timeLog timewrite
update_time_entryUpdate time entrywrite
delete_time_entryDelete time entrywrite
start_timerStart timerwrite
pause_timerPause timerwrite
resume_timerResume timerwrite

The live list, with full descriptions and annotations, is what your client receives from tools/list after sign-in.

Example prompts

  • "Show my open issues in project WEB, highest priority first."
  • "Create an issue in WEB: the export button does nothing in Safari. Assign it to me."
  • "Summarize merge request #128 and list the unresolved threads."
  • "Find where OrderTotal is defined and who changed it last."
  • "Why did the last pipeline run on main fail?"
  • "What would change if I deployed the latest build to staging? Show the preview first."
  • "What did the team decide about the release schedule? Link the sources."

Permissions and security

The assistant acts as you. It signs in with your Code4 account and gets exactly your permissions. It sees the organizations, projects, documents and chats you can see, and nothing else. Knowledge search results are filtered by your permissions before the search runs.

Tools say what they do. Every tool carries MCP annotations:

  • Read-only tools, almost half of them, are marked readOnlyHint.
  • Tools that deploy, roll back, merge or rebase, delete, commit to a branch, run pipelines, change secrets, delete or bulk-edit issues, change a project's visibility or move an issue to another project are marked destructiveHint.
  • All tools are marked openWorldHint: false: they only call the Code4 API.

Your client decides when to ask you. Code4 does not add a confirmation step of its own for MCP clients. Clients such as Claude, ChatGPT, Cursor and VS Code use the annotations and your client settings to decide which calls need your approval. Review your client's approval settings before you let it run destructive tools without asking.

What Code4 enforces regardless of the client.

  • Secret values cannot be read back from the secret store: tools return secret names only. Logs are masked, but a step that prints a transformed secret can still expose it.
  • Moving a document or a folder to a place with different viewers is only previewed until the call is repeated with an explicit confirmation.
  • Protected environments apply to the assistant the same way they apply to you: a deploy needs your deploy permission and waits for approval where the environment requires it. If you are an approver, the assistant can cast your vote, and that tool is marked destructiveHint.
  • Merging a merge request checks the branch protection rules, such as required approvals.

Two tools bypass branch protection. Committing files to a branch and merging one branch into another write to the branch directly, without checking its protection rules or review. Both are marked destructiveHint. Keep your client's approval on for them, or turn them off in your client if you do not need them.

Project rules are conventions, not permissions. Your organization and projects can keep rules and skills for coding agents. Any project member can write them, so they describe how to work but never authorize actions you did not ask for.

Revoke access at any time. In Code4, open Preferences → AI Integrations → Connected AI clients and click Revoke next to the client. It loses access immediately, and open connections are closed. Restore brings it back; the client then needs to sign in again. You can also end sign-in sessions under Preferences → Security & Access.

To report a vulnerability, see SECURITY.md.

Data handling

  • Your assistant receives what the tools return. When a tool runs, its result goes to your AI client and, through it, to the model provider your client uses. That provider's terms apply to this data. Connect only clients you trust with your project data.
  • The MCP server keeps no copy of tool results. It forwards each call to the Code4 API with your sign-in token. It keeps only short-lived fingerprints of the issue and document text it last showed you, so that your assistant's edits merge with teammates' live edits instead of overwriting them. Request logs contain the time, the request path and the client's user agent, not request or response bodies.
  • What Code4 records about AI clients: which clients you connected (the name each client gave itself, first and last use), how many tool calls each client made, and which changes AI clients made in your name, without the content of the request. AI activity records are kept for 13 months.
  • Call transcripts. Transcripts and summaries exist only for calls where participants agreed to AI. An organization administrator can turn off MCP access to them in Call settings.

Details: Privacy Policy and Terms of Service.

Troubleshooting

The browser does not open, or the client says it needs authentication. Start the sign-in from the client: /mcp → c4 → Authenticate in Claude Code, codex mcp login c4 in Codex, Connect or Authenticate next to the server in editors.

"Access for this client was revoked." Someone revoked this client in Connected AI clients. Open Preferences → AI Integrations → Connected AI clients, click Restore, then sign in again from the client.

Claude cannot finish connecting. Edit the connector, open Advanced settings → OAuth client and choose Register automatically.

Sign-in fails at client registration. Your client may not be supported yet. Write to support@code4.space with the client name and version.

The agent does not find the tools. Restart the client or start a new conversation. If you added the server by hand and use the commands from Code4, check that the server is named c4.

VS Code reports too many tools. Open Configure Tools in the chat view and turn off tool groups you do not need. VS Code sends at most 128 tools per request.

Cline shows a 405 error. Set "type": "streamableHttp" in cline_mcp_settings.json.

A personal access token in a header does not work. That is expected. The MCP server accepts only OAuth sign-in.

Results are missing. The assistant sees only what your account can see. Check that you are a member of the project, and name the organization if you belong to several.

Support

Email support@code4.space or use the contact page. Include your client name and version and the time of the problem. Never send your password or tokens.

Files in this repository

FileUsed by
server.jsonMCP Registry entry space.code4/mcp
.claude-plugin/plugin.json, .claude-plugin/marketplace.json, .mcp.jsonClaude Code plugin and plugin marketplace
plugin.json, mcp.jsonAgent Plugins package for ChatGPT, Codex and Cursor
gemini-extension.json, GEMINI.mdGemini CLI extension
llms-install.mdInstall notes for Cline and other agents that set up servers themselves
icons/Code4 icons in SVG and PNG

This repository contains configuration and documentation only. The files are under the MIT License. Code4 and the Code4 logo belong to Code4 Space, Inc.

No installation packages available.

Remote