Skip to content

Commit 01fc4ba

Browse files
Merge pull request #300 from neo4j/fix/no-fake-properties
Remove EmptyInput workaround now that mcp-go always emits properties
2 parents 5d02aea + 2d0e3a8 commit 01fc4ba

5 files changed

Lines changed: 11 additions & 19 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
kind: Patch
2+
body: >-
3+
Fixed the inputSchema advertised by `get-schema` and `list-gds-procedures` in
4+
the `tools/list` response. Both tools previously emitted a schema that
5+
required a spurious `properties` argument (an artefact of the `EmptyInput`
6+
workaround introduced for OpenAI compatibility). mcp-go v0.46+ already
7+
guarantees that a bare `NewTool` call emits `"properties": {}`, so the
8+
workaround is no longer needed.
9+
time: 2026-06-10T15:07:42.108933+01:00

go.sum

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ github.com/lufia/plan9stats v0.0.0-20260216142805-b3301c5f2a88 h1:PTw+yKnXcOFCR6
6262
github.com/lufia/plan9stats v0.0.0-20260216142805-b3301c5f2a88/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg=
6363
github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE=
6464
github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
65-
github.com/mark3labs/mcp-go v0.50.0 h1:kfxh8ejrBCABy5pez+rUYpsSLUKV2Yg38xBtrGRuo4U=
66-
github.com/mark3labs/mcp-go v0.50.0/go.mod h1:Zg9cB2HdwdMMVgY0xtTzq3KvYIOJQDsaut+jWjwDaQY=
6765
github.com/mark3labs/mcp-go v0.54.0 h1:PZhQvd+5xrT43cUoiaKn/hDcvLUhcLc1twSEKYPTcTA=
6866
github.com/mark3labs/mcp-go v0.54.0/go.mod h1:+8WclSK1ZUweCP3hvktSji8n8ABG/95QaEkeVE/Uwas=
6967
github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
@@ -84,8 +82,6 @@ github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g
8482
github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28=
8583
github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
8684
github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc=
87-
github.com/neo4j/neo4j-go-driver/v6 v6.0.0 h1:xVAi6YLOfzXUx+1Lc/F2dUhpbN76BfKleZbAlnDFRiA=
88-
github.com/neo4j/neo4j-go-driver/v6 v6.0.0/go.mod h1:hzSTfNfM31p1uRSzL1F/BAYOgaiTarE6OAQBajfsm+I=
8985
github.com/neo4j/neo4j-go-driver/v6 v6.1.0 h1:kx/h9lHV9XJEWTzAV0/23/bzvdl8qcq3rLhHN3Z118M=
9086
github.com/neo4j/neo4j-go-driver/v6 v6.1.0/go.mod h1:hzSTfNfM31p1uRSzL1F/BAYOgaiTarE6OAQBajfsm+I=
9187
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=

internal/tools/cypher/get_schema_spec.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ package cypher
66
import (
77
"github.com/mark3labs/mcp-go/mcp"
88
)
9-
type EmptyInput struct {
10-
Properties map[string]interface{} `json:"properties"`
11-
}
129

1310
func GetSchemaSpec() mcp.Tool {
1411
return mcp.NewTool("get-schema",
@@ -20,6 +17,5 @@ func GetSchemaSpec() mcp.Tool {
2017
mcp.WithIdempotentHintAnnotation(true),
2118
mcp.WithDestructiveHintAnnotation(false),
2219
mcp.WithOpenWorldHintAnnotation(true),
23-
mcp.WithInputSchema[EmptyInput](),
2420
)
2521
}

internal/tools/gds/list_gds_procedures_spec.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ package gds
55

66
import "github.com/mark3labs/mcp-go/mcp"
77

8-
type EmptyInput struct {
9-
Properties map[string]interface{} `json:"properties"`
10-
}
11-
128
func ListGDSProceduresSpec() mcp.Tool {
139
return mcp.NewTool("list-gds-procedures",
1410
mcp.WithDescription(
@@ -26,6 +22,5 @@ func ListGDSProceduresSpec() mcp.Tool {
2622
mcp.WithIdempotentHintAnnotation(true),
2723
mcp.WithDestructiveHintAnnotation(false),
2824
mcp.WithOpenWorldHintAnnotation(true),
29-
mcp.WithInputSchema[EmptyInput](),
3025
)
3126
}

test/e2e/server_initialization_test.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,7 @@ func TestServerInitializationE2E(t *testing.T) {
286286
IdempotentHint: mcp.ToBoolPtr(true),
287287
OpenWorldHint: mcp.ToBoolPtr(true),
288288
},
289-
properties: map[string]propertyExpectation{
290-
"properties": {jsonSchemaType: "object", required: true},
291-
},
289+
properties: map[string]propertyExpectation{},
292290
},
293291
"list-gds-procedures": {
294292
annotations: mcp.ToolAnnotation{
@@ -298,9 +296,7 @@ func TestServerInitializationE2E(t *testing.T) {
298296
IdempotentHint: mcp.ToBoolPtr(true),
299297
OpenWorldHint: mcp.ToBoolPtr(true),
300298
},
301-
properties: map[string]propertyExpectation{
302-
"properties": {jsonSchemaType: "object", required: true},
303-
},
299+
properties: map[string]propertyExpectation{},
304300
},
305301
}
306302

0 commit comments

Comments
 (0)