Build1 distinct publisher3 min readUpdated
Six paired evaluations on a Tokyo transit server: one better route, one worse, four identical. The guidance file changed the agent's decision path without breaking anything.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Count the outcomes before the anecdote. Four of the six paired runs came out the same with the Skill as without: evals 1 through 3 showed little difference, and eval 6, the time-sensitive arrival case, produced an identical result from the same MCP capability [6][9]. One run got worse, with the Skill changing route selection to a less optimal route [7]. One got better [8]. Net across the suite: one improvement, one regression, four ties, in exchange for another artifact to keep in sync with the server [14].
The single win is narrower than the tally suggests. It landed on the request where the user had explicitly asked to minimize transfers [8], so the guidance helped the agent honour a constraint the prompt already carried. On the three request classes the server was built for (station-to-station routing, attraction and landmark routing, time-sensitive arrival planning), the tools handled the work unaided [10]. The guidance was competing against a baseline that already worked.
Then the interesting failure. According to the developer's dev.to writeup, with the Skill in place the agent sometimes preferred web search over the MCP tools it had been handed [3], and nothing crashed [4]. For a transit server that is a substitution of source: the answer keeps its shape, while whatever the server guaranteed about fares and live data is quietly not what produced it. The post does not claim to know the cause, and the author's next step is Google ADK-based tracing precisely because comparing final outputs does not see tool selection closely enough [13].
That is the part that generalises past Tokyo trains. A tool has a signature and a return value, so you can pin it with a fixture. SKILL.md has neither. It edits the agent's priors about when the tools are worth calling at all, so its blast radius is every request the server handles, and its failure mode is a plausible answer obtained the wrong way [3][4]. Tool-level tests pass through all of that untouched.
So the assertion has to move. A regression suite for a guidance artifact has to check the path: which tool was called, how many transfers the chosen route had, what fare came back, whether the model left the server at all. That is close to what this paired evaluation already tracked, tool usage, route selection, transfers, travel time, fares and output quality [5], and the reason it caught anything is that the same request ran twice with the layer as the only variable. Without that harness, adding the Skill is an untested change to every code path the server owns.
The author's stated conclusion is the modest one: adding guidance is not automatically an improvement, and its value depends on the task, the underlying tools, and how the Skill itself is defined [11]. His numbers support a sharper corollary. On this suite, at this stage, the layer has not earned its place, and the only reason anyone can say so is a side-by-side run that the server's own tests would never have prompted.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The MCP tools themselves worked correctly, but introducing the Skill layer caused unexpected changes in agent behavior, and in some cases the agent started preferring web search over the MCP tools.
Nothing crashed; the problem was a silent change in the agent's decision path.
The author frames the 'bug' in the exercise as not a broken MCP tool but the behavior change caused by adding another layer of guidance.
A developer working on a Tokyo public transit MCP server began experimenting with adding a SKILL.md to see whether more structured guidance would improve the agent's behavior and output.
The author's framing: MCP provides the agent with capabilities and tools, while a Skill provides task-specific guidance for when and how those capabilities should be used.
The author ran the same transit requests With Skill and Without Skill and compared outputs across 6 progressively more complex evaluations, looking at tool usage, route selection, transfers, travel time, fares and overall output quality.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Structured but thin single-author evidence
The author does something better than anecdote: a deliberate baseline-versus-treatment design across six graded tasks with named comparison dimensions, and per-eval outcomes are reported rather than summarized away. But the evidence is entirely self-reported by one developer on one hobby server, each eval appears to be a single run with qualitative judgement of 'less optimal', and the post publishes no SKILL.md text, no model or runtime identification, no prompts, no traces and no repeated trials. The most striking claim — that the agent sometimes preferred web search over the MCP tools — is asserted without any log or trace excerpt, and the author himself says tracing is future work.
One developer, one hobby server
The only usage disclosed anywhere in the supplied material is the author's own Tokyo transit MCP server plus a locally added SKILL.md, exercised through six evaluations for a contest submission. There is no third party running it, no download, install, star or traffic figure, no vendor or team deployment, and no independent reproduction of the results. Adoption is therefore real but minimal — a single practitioner datapoint.
Near-aligned, slightly over-generalized
This post is unusually well calibrated for the genre: it reports a net-zero result against its own hypothesis, names the one case where the Skill made things worse, and its headline lesson — that guidance may be the wrong layer to add — is hedged as depending on task, tools and Skill definition. The small positive gap comes from generality rather than spin: broad statements about how MCP and Skills interact, and about agents rerouting to web search, are carried by six single-run comparisons on one domain-specific server with no traces, no model disclosure and no repeats. The framing of the effect as a 'silent bug' also lands slightly stronger than the un-instrumented evidence behind it.
Contest entry and ongoing personal series
The post opens by declaring itself a submission to DEV's Summer Bug Smash contest 'powered by Sentry', which creates an incentive to frame the work as a bug hunt and to publish on schedule regardless of how conclusive the results are — plausibly why an unfinished experiment ships with 'this experiment is not finished yet'. It is also an installment in the author's own series about his MCP server, so there is audience-building interest. Countervailing factors keep this mid-range rather than high: no vendor, employer or commercial product is being promoted, the reported result is negative for the author's own hypothesis, and the AI-as-editor use is disclosed.
Low-moderate: one self-reported source
The narrow factual core — what this developer did and what he observed — is well documented by the primary account and internally consistent, so the descriptive claims are dependable. Confidence in anything beyond that is limited by a single-publisher, single-author cluster with no corroboration, no instrumentation, unstated model and runtime, and single-run evaluations whose 'less optimal' judgements are qualitative. Forward-looking items (expanded eval suite, ADK tracing) are stated intentions only.
build
MCP 2026-07-28 drops the `result` wrapper, and your unit tests will not notice1 distinct publisher
build
MCP Goes Stateless, and Your Session-Bound Servers Break1 distinct publisher
build
Your agent didn't misunderstand the prompt. It ran the wrong branch.1 distinct publisher
build
Rate limit your MCP servers, because a retrying agent turns one error into a billing incident1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 22, 2026