space-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPACE_TOKEN | No | JetBrains Space personal token. Alternatively, use 'space auth login' to store in keyring or credentials file. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_merge_requestA | Get details of a specific merge request. Args: project: Project key (e.g., "ij" for IntelliJ) repository: Repository name (e.g., "ultimate") review_id: Review/MR identifier (numeric ID or full review ID) Returns: YAML with MR title, state, author, branches, and reviewers. |
| get_merge_request_timelineA | Get the full timeline of a merge request: comments, dry runs, commits, reviews. Returns a chronological markdown timeline with day sections, threaded replies (Patronus dry run results, safe merge status), and code review discussions. Args: project: Project key (e.g., "ij") repository: Repository name (e.g., "ultimate") review_id: Review/MR identifier Returns: Markdown timeline grouped by day, with threaded replies indented. |
| get_merge_requestsA | List merge requests for a repository. Args: project: Project key (e.g., "ij") repository: Repository name (e.g., "ultimate") branch: Optional source branch name to filter by state: Optional state filter: "Opened", "Closed", "Merged", "RequiresAuthorAttention", or "NeedsReview" limit: Maximum number of results (default 1; set to 0 for unlimited) author: Optional author username to filter by (case-insensitive; an unknown username yields a clear "no such user" error) Returns: YAML list of merge requests. |
| put_merge_requestA | Create a new merge request. Args: project: Project key (e.g., "ij") repository: Repository name (e.g., "ultimate") source_branch: Branch with changes (e.g., "azhukova/fix-auth") target_branch: Branch to merge into (e.g., "master") title: MR title description: Optional MR description Returns: YAML with created MR number, title, and branches. |
| patch_merge_requestA | Edit an existing merge request's title and/or description. Omit a field to leave it unchanged; pass "" for Args: title: New title, or omit to leave unchanged. description: New description ("" clears it), or omit to leave unchanged. Returns: YAML with the updated merge request. |
| post_close_merge_requestA | Close a merge request. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") or internal ID Returns: Confirmation message. |
| post_reopen_merge_requestA | Reopen a closed merge request. The source branch must still exist. If it was deleted on close, re-push it before reopening. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") or internal ID Returns: Confirmation message. |
| post_merge_request_commentA | Post a general comment on a merge request. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") or internal ID text: Comment text (Markdown supported) Returns: Confirmation message. |
| post_code_discussionA | Create an inline code discussion on a specific file and line of a merge request. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") or internal ID repository: Repository name (e.g., "ultimate") revision: Git commit SHA the comment is anchored to filename: File path (e.g., "src/main.py") line: Line number (new side of the diff) text: Comment text (Markdown supported) Returns: Confirmation with file and line reference. |
| post_reply_to_code_discussionA | Reply to an existing code discussion on a merge request. The discussion_channel_id can be found in the timeline output of a merge request. Args: project: Project key (for context only) review_id: MR number (for context only) discussion_channel_id: Channel ID of the code discussion to reply to text: Reply text (Markdown supported) Returns: Confirmation message. |
| post_delete_merge_requestB | Delete a merge request. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") or internal ID Returns: Confirmation message. |
| get_patronus_runsA | Find Patronus runs (dry runs / safe merges) for a merge request. Use this to discover CI dry runs and safe merge attempts for a merge request. Each run has an ID that can be passed to get_patronus_run. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") Returns: YAML list of runs with IDs for follow-up queries. |
| get_patronus_runA | Get details of a specific Patronus run including TeamCity build checks and problems. Use the run ID from get_patronus_runs or from a Patronus URL (e.g., https://patronus.labs.jb.gg/robot/). The returned TeamCity build IDs can be inspected further using the teamcity CLI: teamcity run view Args: run_id: Patronus run UUID Returns: YAML with run overview, TeamCity checks, and problems. |
| put_patronus_dry_runA | Start a Patronus dry run for a merge request. Runs all configured quality checks (TeamCity builds) without merging. Use get_patronus_run to track progress. Args: project: Project key (e.g., "ij") review_id: MR number (e.g., "194108") Returns: Markdown with run ID, Patronus URL, and status. On failure, returns actionable guidance on what to do next. |
| post_cancel_patronus_runA | Cancel a running Patronus run (dry run or safe merge). Args: run_id: Patronus run UUID Returns: Confirmation message. |
| get_attachmentA | Download a file attachment from a Space MR discussion. Use the attachment ID from get_merge_request_timeline output (shown as [id: ...] next to each attachment). For text files, returns the file content directly. For binary files, returns the download URL. Args: attachment_id: Attachment UUID Returns: File content (text) or download URL (binary). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bindreams/space-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server