• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dcdpr / jp / 16492591342 / 1
67%
main: 67%

Build:
DEFAULT BRANCH: main
Ran 24 Jul 2025 09:06AM UTC
Files 143
Run time 4s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Jul 2025 09:04AM UTC coverage: 40.331% (+0.9%) from 39.466%
16492591342.1

push

github

web-flow
fix(config): Inherit wildcard configs for MCP servers and tools (#224)

Previously, during configuration parsing, after we had finished
wildcard-inheritance for defined servers and tools, we would throw away
the wildcard configurations, as they were no longer needed (or so I
thought).

Turns out, we DO need them. Specifically, in a scenario where you define
e.g.:

```toml
[servers.github.tools.*]
enable = false
```

This would (or rather, _should_) disable all tools for the `github`
server. However, because we _merged_ global defaults with _specific
servers and tools_, and since there **is not specific server or tool
defined in this example**, no merging would happen, and the wildcard
configuration got thrown out.

What I failed to realize was that the merging-at-parse-time works in a
case such as:

```toml
[servers.github.tools.*]
enable = false

[servers.github.tools.get_readme]
```

In the above case, the configuration contains a specific tool
configuration (even if empty), and inherits the wildcard configuration.
But in the first case, no specific tool configuration exists.

Still though, at runtime, if we were to call the `get_readme` tool, we
would still want the default from the first example to be applied to a
non-existing tool (or server) configuration. That's what this commit
rectifies.

Because we merge the existing configurations at startup, we don't need
to do any merging at runtime. If a configuration exists for a specific
server or tool, it has already been merged with the wildcard ones, so we
can just return it as-is, if none exists, we can just return the
wildcard configuration, or the `default()` impl.

---------

Signed-off-by: Jean Mertz <git@jeanmertz.com>

5093 of 12628 relevant lines covered (40.33%)

5.54 hits per line

Source Files on job 16492591342.1
  • Tree
  • List 143
  • Changed 6
  • Source Changed 4
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 16492591342
  • db113592 on github
  • Prev Job for on main (#16471137379.1)
  • Next Job for on main (#16494597703.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc