Skip to content

Repository files navigation

Library

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 --prerelease
builder.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.

Docs

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 --serve

Build

docker build --build-context endpoint-definition-folder=ExampleEndpointDefinitions -t named-query .

Run

docker run --rm -p 8080:8080 -e NamedQuery__SparqlEndpoint=https://example.com/sparql named-query

Run locally

Serves the endpoint definitions in App/LocalDevelopmentEndpointDefinitions.

dotnet run --project App -- --NamedQuery:SparqlEndpoint=https://example.com/sparql

Test

Docker tests require a running Docker daemon.

dotnet test --solution NamedQuery.slnx

Release

Publishing 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.

MCP

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"]
    }
  }
}

Releases

Packages

Used by

Contributors

Languages