Skip to content

Conversation

@danbarr
Copy link
Contributor

@danbarr danbarr commented Nov 29, 2025

Summary

Implements dockyard-side support for build args as described in #189. This allows spec.yaml files to specify additional CLI arguments that are baked into the container entrypoint.

Changes

  • Added args field to MCPServerPackageSpec struct
  • Updated generateDockerfile() to pass args to BuildFromProtocolSchemeWithName
  • Updated documentation in README.md and docs/packaging.md with examples

Implementation Details

The args field is optional and accepts an array of strings:

spec:
  package: "@example/mcp-server"
  version: "1.0.0"
  args:
    - "start"
    - "--flag"

These arguments are passed to the toolhive BuildFromProtocolSchemeWithName function, which appends them to the container entrypoint. For example, with the above spec, the generated Dockerfile will have:

ENTRYPOINT ["npx", "@example/mcp-server", "start", "--flag"]

Benefits

  • Required CLI arguments are baked into the container, preventing users from accidentally overwriting them
  • Solves the issue where thv run -- args overwrites default args instead of appending
  • Works seamlessly with the updated toolhive BuildFromProtocolSchemeWithName that now supports the buildArgs parameter

Testing

Tested with local builds to verify args are correctly passed through to the generated Dockerfile.

Closes #189

@github-actions
Copy link

🔒 MCP Security Scan Results

✅ adb-mysql-mcp-server

  • Status: Passed
  • Tools scanned: 3
  • Result: No security issues detected

✅ agentql-mcp

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ arxiv-mcp-server

  • Status: Passed
  • Tools scanned: 4
  • Result: No security issues detected

✅ astra-db-mcp

  • Status: Passed
  • Tools scanned: 16
  • Result: No security issues detected

✅ aws-diagram

  • Status: Passed
  • Tools scanned: 3
  • Result: No security issues detected

✅ aws-documentation

  • Status: Passed
  • Tools scanned: 3
  • Result: No security issues detected

✅ blender-mcp

  • Status: Passed
  • Tools scanned: 21
  • Result: No security issues detected

✅ brightdata-mcp

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ browserbase-mcp-server

  • Status: Passed
  • Tools scanned: 9
  • Result: No security issues detected

✅ chroma-mcp

  • Status: Passed
  • Tools scanned: 13
  • Result: No security issues detected

✅ chrome-devtools-mcp

  • Status: Passed
  • Tools scanned: 26
  • Result: No security issues detected

✅ context7

  • Status: Passed
  • Tools scanned: 2
  • Result: No security issues detected

✅ graphlit-mcp-server

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ heroku-mcp-server

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ ida-pro-mcp

  • Status: Passed
  • Tools scanned: 48
  • Result: No security issues detected

✅ launchdarkly-mcp-server

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ magic-mcp

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-clickhouse

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-jetbrains

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-neo4j-aura-manager

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-neo4j-cypher

  • Status: Passed
  • Tools scanned: 3
  • Result: No security issues detected

✅ mcp-neo4j-memory

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-server-box

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ mcp-server-circleci

  • Status: Passed
  • Tools scanned: 16
  • Result: No security issues detected

✅ mcp-server-neon

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ netbird

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ notion

  • Status: Passed
  • Tools scanned: 19
  • Result: No security issues detected

✅ onchain-mcp

  • Status: Passed
  • Tools scanned: 10
  • Result: No security issues detected

✅ phoenix-mcp

  • Status: Passed
  • Tools scanned: 19
  • Result: No security issues detected

✅ playwright-mcp

  • Status: Passed
  • Tools scanned: 22
  • Result: No security issues detected

✅ sentry-mcp-server

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ supabase-mcp-server

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

✅ tavily-mcp

  • Status: Passed
  • Tools scanned: 0
  • Result: No security issues detected

Summary: Scanned 33 MCP server(s), all passed security checks. ✅

@danbarr
Copy link
Contributor Author

danbarr commented Nov 29, 2025

Note I didn't include the "start" build-time arg for launchdarkly as part of this PR, we'll need to coordinate that change along with a corresponding registry update to remove it from the default runtime args so we don't duplicate the arg.

@JAORMX JAORMX merged commit f0a3342 into main Nov 29, 2025
104 of 105 checks passed
@JAORMX JAORMX deleted the feat/build-args-support branch November 29, 2025 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[IDEA] Specify required CLI arguments in the spec

3 participants