The functionality is published on NuGet as TheODI.NamedQuery, for serving your own endpoint definitions from any ASP.NET Core app. Its documentation, including an API reference, is at https://theodi.github.io/NamedQuery/.
dotnet add package TheODI.NamedQuery --prereleasebuilder.Services.AddNamedQuery(options => options.Definitions = new ManifestEmbeddedFileProvider(typeof(Program).Assembly));
var app = builder.Build();
app.UseNamedQuery();See the package README for setup, the manifest reference and the routes it maps.
The package README and an API reference generated from the XML docs are built into a DocFX site in docs/, published at https://theodi.github.io/NamedQuery/. To build and serve it locally at http://localhost:8080:
dotnet tool restore
dotnet docfx docs/docfx.json --servedocker build --build-context endpoint-definition-folder=ExampleEndpointDefinitions -t named-query .docker run --rm -p 8080:8080 -e NamedQuery__SparqlEndpoint=https://example.com/sparql named-queryServes the endpoint definitions in App/LocalDevelopmentEndpointDefinitions.
dotnet run --project App -- --NamedQuery:SparqlEndpoint=https://example.com/sparqlDocker tests require a running Docker daemon.
dotnet test --solution NamedQuery.slnxPublishing a GitHub release whose tag is v followed by the version (e.g. v0.1.0-alpha.1) runs the release workflow. It tests, packs the library with that version, pushes it to NuGet and attaches the packages to the release. Mark versions with a - suffix as pre-releases.
A release also deploys the docs site to GitHub Pages with the docs workflow, which can also be run by hand from the Actions tab ("Docs"). After that, it asks Context7 to refresh its library for this repository.
Each endpoint is also exposed as a read-only tool on the MCP server at /mcp (Streamable HTTP). Tool names are endpoint paths with characters other than letters, digits, _ and - replaced by _.
For example, to connect a client that only supports local servers:
{
"mcpServers": {
"named-query": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8080/mcp"]
}
}
}