standup-mr
Server Details
Writes your daily standup from GitLab or GitHub merge request state: what's ready, blocked or waiting on your review, and why a pipeline is red, read from the failing job log. OAuth sign-in, no API keys; can post the note to Slack, Discord or Google Chat on a schedule.
- Status
- Healthy
- Uptime
- 99.7% over 22 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Jubstaaa/standup-mr
- GitHub Stars
- 1
- Server Listing
- standup-mr
TDQS
Scored across 3 tools
The three tools target clearly distinct stages of one workflow: read the note-writing rules, fetch the standup data snapshot, and post the finished note. There is no overlap in purpose, and each description explicitly states when to call it and its read-only vs. side-effect nature.
All three names follow a strict verb_noun pattern (get_note_instructions, get_standup_data, post_standup_note) with the verb accurately signaling read-only vs. write behavior. No mixing of conventions or styles.
Three tools is well-scoped for a deliberately narrow domain: the set covers exactly the instructions-fetch-data-post pipeline needed to produce a standup note. Every tool earns its place, and no additional operations would obviously belong here.
The surface fully covers the domain's lifecycle: rules retrieval, data collection, and the single side-effecting action of posting a note. The stated limitations (snapshot only, no filtering) are intentional design scope rather than gaps that would cause agent dead ends.
Available Tools
3 toolsget_note_instructionsGet note instructionsARead-onlyIdempotentInspect
Returns the note-writing rules — the playbook for turning get_standup_data output into a standup note a person would actually say out loud: how to group the previous day by theme, how to derive today from open merge requests, and how to report a blocker from its job log. Read-only, no arguments, no network. Call it once before writing the first note; the rules do not change between calls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered; 'Read-only, no arguments, no network' largely restates them. The description earns credit by disclosing the actual content of the returned rules (grouping the prior day by theme, deriving today from open merge requests, reporting a blocker from its job log), which the agent cannot learn elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what is returned, then the workflow guidance, in two tight sentences with no wasted preamble. The 'Read-only, no arguments, no network' clause is partially redundant with the annotations and schema, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of conveying what comes back, and it does so by enumerating the three rule areas the playbook covers. An agent knows what it gets and how to use it; only the exact response format is left unspecified, which is minor for an instruction-fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description's 'no arguments' is consistent with the empty input schema and leaves no ambiguity about how to call it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (returns note-writing rules) and immediately scopes it as the playbook for transforming get_standup_data output into a standup note. This distinguishes it cleanly from the siblings get_standup_data and post_standup_note without the agent needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call it once before writing the first note and that the rules do not change between calls, which tells the agent when to invoke it and when not to repeat it. It does not explicitly name the alternative tools for other workflow steps, so it falls just short of full when/when-not/alternatives coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_standup_dataGet standup dataARead-onlyIdempotentInspect
Collect merge-request-based standup data from the GitLab or GitHub account the user linked to this connector. Returns one JSON object: today, previousDays[] with the events of each, todayEvents[], myMrs[] bucketed ready / blocked / draft / stale, reviews[] waiting on the user, and blockers[] carrying the error lines read out of each failed pipeline job log.
Call it once at the start of a working day, to write a standup note. It is a snapshot, not a search API: it cannot fetch one named merge request, reach further back than the previous working day, or filter by project.
Read-only. Credentials come from the accounts linked on the connect page, never from an argument. With one linked account no argument is needed; with several, pass provider or host — an ambiguous call fails and lists the linked accounts, so ask the user which one they mean. An expired login fails with a request to reconnect the connector.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Which linked account to read, by host, e.g. github.com or gitlab.example.com. Only needed when several accounts of the same provider are linked. | |
| lang | No | Language for the date labels inside the returned JSON: en (default) or tr. It relabels dates and nothing else — no field is translated, and the standup note itself is written by the caller, in whatever language they are speaking. | |
| provider | No | Which linked account to read, by provider. Only needed when both a GitHub and a GitLab account are linked. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), yet the description still adds high-value behavior: credentials come from linked accounts and never from an argument, ambiguous multi-account calls fail and list accounts, an expired login fails asking for reconnect, and results are scoped to the previous working day. This is information the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the return shape, then usage, then credentials/failure behavior — a logical ordering with no filler sentences. The return-field enumeration is long but earns its place because there is no output schema defining those fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully compensates by enumerating the returned object and its buckets, and it covers the three-parameter surface, auth sourcing, and failure modes. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description goes beyond the schema by stating the argument-selection rule (no arg with one linked account; pass provider or host with several) and the failure mode on ambiguity. It does not add format details beyond what the schema enums already establish.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (collect standup data from linked GitLab/GitHub) and names the exact return shape (today, previousDays[], myMrs[] bucketed, reviews[], blockers[]). The scope 'merge-request-based' and 'snapshot, not a search API' cleanly separates it from siblings get_note_instructions and post_standup_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('once at the start of a working day, to write a standup note') and explicit when-not ('cannot fetch one named merge request, reach further back than the previous working day, or filter by project'). The alternative tool for posting results is implicit but the boundaries of this tool are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_standup_notePost standup noteAInspect
Posts a finished standup note to the chat webhook the user saved on the connect page (Slack, Discord or Google Chat). This one has a side effect: it sends a message other people will see, so only call it on a note the user has agreed to send. The webhook URL is never an argument. If none is saved, the call fails and says how to add one.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The note to post, as the chat should render it. Slack and Discord both take Markdown, so send the written note rather than the raw JSON from get_standup_data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true) by disclosing the real consequence — a message other people will see — and the consent precondition, which no annotation conveys. It also explains that the webhook is never an argument and that a missing webhook produces an informative failure rather than a silent no-op.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each load-bearing: destination, side-effect/consent warning, and the webhook/failure behavior. The safety-critical warning is front-loaded rather than buried at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no output schema, the description covers everything an agent needs: destination, consent requirement, external configuration, and failure semantics. Annotations cover the safety profile and the description covers behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single 'text' parameter is already documented, but the description adds two things the schema cannot: the webhook URL is deliberately not a parameter, and the note is rendered as the chat would show it. That negative/contextual clarification is genuine added value over the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (posts), resource (a finished standup note) and destination (the chat webhook saved on the connect page, naming Slack/Discord/Google Chat). An agent can separate this from get_standup_data or get_note_instructions purely on this sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly constrains use: 'only call it on a note the user has agreed to send,' plus the concrete failure path when no webhook is saved. It lacks an explicit pointer to the sibling that produces the note content, but the context is otherwise unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_note_instructions - First observed
get_standup_data - First observed
post_standup_note
Publisher details
- Operator
- İlker Balcılar · Publisher source
- Operator website
- https://github.com/Jubstaaa
- Vendor relationship
- Independent
- Trust center
- Not available
- Restrictions
- Free. GitHub org repositories need the standup-mr GitHub App installed on the org (or a fine-grained token). Self-hosted GitLab / GitHub Enterprise must be reachable from the public internet. · Publisher source
Related MCP Connectors
- AlignOAuthcom.meet-align
Ask what your team decided in meetings, get your standup, and update Jira/Linear-synced tasks.
Your team's stories, acceptance criteria, designs and docs, for coding agents. Sign in with OAuth.
- mcpOAuthcom.attendmeet
Bring meeting decisions, tasks and user stories into your AI editor (Claude, Cursor, Copilot).
Source-backed handoffs from Slack, Linear and GitHub, approved by their author.
Related MCP Servers
- AlicenseAqualityDmaintenanceGenerates daily standup drafts from your actual GitHub, Jira, Linear, and Slack activity, grouping work items and detecting blockers.524 npmMIT
- AlicenseAqualityCmaintenanceGenerates daily standup notes from your git commits across multiple repositories using AI.457 npm5MIT
- AlicenseNot gradedqualityBmaintenanceEnables building a daily standup from real GitHub activity and spoken notes, exposing tools to fetch a voice-ready summary, capture tasks, bugs and blockers, list and complete items, and file deduplicated GitHub issues. Output is voice-first, returning a short spoken version alongside markdown for the screen.MIT
- FlicenseNot gradedqualityDmaintenanceSummarizes Slack activity and GitLab merge requests with OpenAI to help generate daily standups, weekly reports, or quarterly check-ins.-
Glama MCP Gateway
Add one secure layer between your agents and this server.