-
Release v0.2.0 Stable
released this
2026-06-10 10:39:12 -06:00 | 0 commits to main since this releasev0.2.0
code.nochebuena.dev/einherjar/mcpMinor release. The framework indexer now captures the members of composite
types — struct fields (with their tags) and interface method sets — closing a
gap whereget_symbolandsearch_symbolscould name a type but not describe
its shape. Additive and backward-compatible: no breaking changes.
Changes
internal/index— schemaSymbolgainsfieldsandmethods. A struct-type symbol now carries
afieldsarray (field name, type, raw struct tag with backticks
stripped, doc comment, and anembeddedflag); an interface-type symbol now
carries amethodsarray (method name, signature without the leading
func, doc comment), embedded interfaces included. Both areomitemptyand
absent for every other kind.SchemaVersionis unchanged. The two additions are additive and
omitempty, so a consumer built against the v0.1.x index parses the new
index without modification.
internal/index— builder- The builder previously truncated every declaration at the first
{, so the
index stored only the one-linetype X struct/type X interfaceheader
and dropped all field and method detail — including struct tags such as
env:"EINHERJAR_PG_HOST". It now inspects each type'sTypeSpecand fills
the newSymbolmembers via a non-truncating printer, alongside the existing
one-lineSignature.
Tools
get_symbolnow returns a struct's fields (with tags) and an interface's
method set in addition to the signature, doc, and source location.search_symbolsnow also matches the query against struct field names,
field types, and struct tags, and against interface method names and
signatures — so an env-var key or a method name resolves to the type that
declares it.
Tests
- New
internal/index/builder_test.go(the package had no tests before)
covers field/tag/embedded-field capture, interface-method and
embedded-interface capture, and discovery of a struct by one of its tags.
Docs
CHANGELOG.mdandREADME.mdupdated to describe the richerget_symbol
output and the broadenedsearch_symbolsmatching.
Upgrade Notes
If you… Action Consume the MCP service from an MCP client (Claude, Cursor, Zed, etc.) None — responses are a strict superset; existing fields are unchanged, fields/methodsare new and optional.Parse the index JSON directly None required — the schema version is unchanged and the new keys are omitemptyadditions. Readfields/methodsto use them.Operate / deploy the service Rebuild and redeploy the image. The index is regenerated at image build ( Dockerfilerunscmd/indexer); a running v0.1.x image keeps serving the older, member-less index until rebuilt. This redeploy also refreshes any index that had drifted behind the framework source.
API
No change to the count of the public surface: the 10 tools and 8 validation
rules from v0.1.0 remain. What changed is additive —get_symbolreturns
struct fields and interface methods,search_symbolsmatches them, and the
index schema gains twoomitemptyfields onSymbol. The schema version
string is unchanged.
Install
go install code.nochebuena.dev/einherjar/mcp/cmd/server@v0.2.0
Dependencies
Module Version Status Role github.com/modelcontextprotocol/go-sdkv1.0.0 unchanged from v0.1.1 Official Go MCP SDK — server, streamable-HTTP transport, tool registration github.com/coreos/go-systemd/v22v22.7.0 unchanged from v0.1.1 Inherit listener from systemd via LISTEN_FDS; loaded only bycmd/servergithub.com/google/jsonschema-gov0.3.0 unchanged (indirect) JSON Schema generation for tool input/output validation github.com/yosida95/uritemplate/v3v3.0.2 unchanged (indirect) RFC 6570 URI template support used by the SDK No dependencies added, removed, or upgraded in this release.
Downloads