Skip to content

Releases: DIMO-Network/server-garage

v0.4.0 — mcpserver executor options

Choose a tag to compare

@zer0stars zer0stars released this 12 Jun 02:01
32bd508

What's Changed

  • mcpserver.ExecutorOptionNewGQLGenExecutor(es, opts ...ExecutorOption) exposes the underlying gqlgen *executor.Executor so services can register handler extensions (billing, complexity limits, query recording, metrics) and error presenters on the MCP path. Source-compatible with existing callers.
  • Strict selection template keysSelectionTemplate parses with missingkey=error; tool calls omitting a templated key get a clear render error instead of <no value> spliced into the executed GraphQL query.
  • CI — golangci-lint pinned to v2.12.1 (v2.12.2 artifacts fail installer checksum verification).

Full Changelog: v0.3.0...v0.4.0

v0.3.0 — @mcpToolArg tool-only arguments

Choose a tag to compare

@zer0stars zer0stars released this 23 Apr 20:00
bd43ea0

What's new

  • Repeatable @mcpToolArg(name, type, description) directive for declaring MCP tool arguments that exist purely to feed SelectionTemplate — no changes needed to the underlying GraphQL field. Lets templated selections (v0.2.0) work without modifying field signatures. See PR #35.
  • ArgDefinition.ToolOnly + stripping of those args from GraphQL variables before executor invocation.
  • Small type-string parser so the directive's type: argument can name any input/scalar/list already in the schema ([Foo!]!, [String!]!, Int, ...).

Example

signals(tokenId: Int!, interval: String!, from: Time!, to: Time!, filter: SignalFilter): [SignalAggregations!]
  @mcpTool(
    name: "get_signals_time_series"
    description: "..."
    selection: "timestamp{{range .signalRequests}} {{.name}}(agg: {{.agg}}){{end}}"
  )
  @mcpToolArg(
    name: "signalRequests"
    type: "[SignalAggregationRequest!]!"
    description: "..."
  )

The GraphQL signals field is unchanged. The MCP tool gets a required signalRequests input; on each call the template renders it into a concrete selection set and signalRequests is dropped before executing.

Compat

Fully additive. Existing @mcpTool-only usage (static or templated) is unaffected.

v0.2.0 — templated @mcpTool selections

Choose a tag to compare

@zer0stars zer0stars released this 23 Apr 19:46
5825515

What's new

  • @mcpTool(selection: ...) now accepts Go text/template syntax. When a selection contains {{, mcpgen emits it as SelectionTemplate on ToolDefinition and puts SelectionPlaceholder in the query. At call time mcpserver renders the template against the call's argument map and splices the result into the query. See PR #34.
  • Static selections keep working unchanged.

Enables shortcut tools with argument-driven selection sets — for example, a signals time-series tool where each {name, agg} pair in a tool argument becomes its own sub-field in the GraphQL selection.

Notes

  • Adds SelectionTemplate field to ToolDefinition and exports SelectionPlaceholder constant.
  • registerShortcutTools now returns an error (package-internal; New propagates it).

v0.1.1

Choose a tag to compare

@zer0stars zer0stars released this 20 Apr 18:53
8cb3e0d

fix(mcpserver): coerce JSON float64 ints to int64 for shortcut tool args

Fixes float64 is not an int errors on every MCP shortcut tool that takes an integer arg (e.g. identity_get_vehicle with tokenId). MCP SDK JSON-decodes number args to float64 inside map[string]any; gqlgen's Int! scalar unmarshaller rejects float64. Args are now coerced to int64 based on ArgDefinition.Type == "integer", recursively for array items with ItemsType == "integer".

v0.0.8

Choose a tag to compare

@KevinJoiner KevinJoiner released this 17 Oct 16:14

Full Changelog: v0.0.7...v0.0.8

v0.0.7

Choose a tag to compare

@KevinJoiner KevinJoiner released this 16 Oct 17:57
c54d102

What's Changed

Full Changelog: v0.0.5...v0.0.7

v0.0.6

Choose a tag to compare

@KevinJoiner KevinJoiner released this 16 Oct 17:55
cafa51d

What's Changed

  • build(deps): bump the actions group with 2 updates by @dependabot[bot] in #9
  • build(deps): bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 in the go-mod group by @dependabot[bot] in #8

Full Changelog: v0.0.4...v0.0.6

v0.0.5

Choose a tag to compare

@KevinJoiner KevinJoiner released this 08 Sep 13:54
cafa51d

What's Changed

  • build(deps): bump the actions group with 2 updates by @dependabot[bot] in #9
  • build(deps): bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 in the go-mod group by @dependabot[bot] in #8

Full Changelog: v0.0.4...v0.0.5

v0.0.4

Choose a tag to compare

@KevinJoiner KevinJoiner released this 25 Aug 14:46

Full Changelog: v0.0.3...v0.0.4

v0.0.3

Choose a tag to compare

@KevinJoiner KevinJoiner released this 31 Jul 20:40
e97a3c9

What's Changed

  • Bump the go-mod group across 1 directory with 2 updates by @dependabot[bot] in #6
  • feat: add env and logging packages by @KevinJoiner in #7

Full Changelog: v0.0.2...v0.0.3