Qyl.Api.Contracts 17.0.14

dotnet add package Qyl.Api.Contracts --version 17.0.14
                    
NuGet\Install-Package Qyl.Api.Contracts -Version 17.0.14
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Qyl.Api.Contracts" Version="17.0.14" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Qyl.Api.Contracts" Version="17.0.14" />
                    
Directory.Packages.props
<PackageReference Include="Qyl.Api.Contracts" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Qyl.Api.Contracts --version 17.0.14
                    
#r "nuget: Qyl.Api.Contracts, 17.0.14"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Qyl.Api.Contracts@17.0.14
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Qyl.Api.Contracts&version=17.0.14
                    
Install as a Cake Addin
#tool nuget:?package=Qyl.Api.Contracts&version=17.0.14
                    
Install as a Cake Tool

qyl

qyl is an analytical engine built for AI agents. Services send it OpenTelemetry traces, logs and metrics; agents query it through MCP and get typed answers: what changed, why a request failed or was slow, whether a fix held, how an agent run, a release or a CI run behaved. qyl measures and correlates; the agent reasons and acts. qyl ships no dashboard or other product UI.

Built over ten months by one developer, starting with Claude Opus 4.5, using Anthropic and OpenAI models to the fullest.

Official sources

Connect an agent

Add https://mcp.qyl.at/mcp as a remote MCP server (Streamable HTTP). Sign-in is OAuth through qyl's Auth0 tenant qyl-eu. The client registers itself with a Client ID Metadata Document (CIMD) or Dynamic Client Registration (DCR), so no client ID is needed.

Scope Allows
qyl:read Every call needs it; the 20 read tools need nothing else.
qyl:write Creating and changing annotations and saved queries, and setting a failure's status.
qyl:delete Deleting annotations and saved queries.

No tool changes or deletes telemetry; retention alone removes it. The server speaks MCP protocol 2026-07-28 and serves 2025-era clients from the same endpoint, through the MCP TypeScript SDK v2 default legacy: 'stateless'. The MCP server README lists the 24 tools, their result and error shapes and the server's configuration.

Locally, run a Collector with the qyl tool and give the MCP client bunx qyl-mcp-server --stdio as its server command:

dotnet tool install --global qyl && qyl up
bunx qyl-mcp-server --stdio    # started by the MCP client

Send telemetry

Any OpenTelemetry SDK exports to the Collector over OTLP: /v1/traces, /v1/logs and /v1/metrics over HTTP (protobuf or JSON), or gRPC. qyl up listens on http://127.0.0.1:4318 (HTTP) and 127.0.0.1:4317 (gRPC) and accepts telemetry without a key. The hosted Collector takes OTLP over HTTP at https://api.qyl.at with the project's key in the x-otlp-api-key header. An API built with Qyl.Api.Sdk exports from its first line.

Repository

Path What it is
services/qyl.collector* The Collector (C#, .NET 10): OTLP ingestion over HTTP and gRPC, DuckDB storage per project, and every analysis, behind POST /api/v1/analysis/<tool_name>. NativeAOT in the hosted container, framework-dependent in the qyl tool.
services/qyl.mcp The MCP server (TypeScript, MCP TypeScript SDK v2, Bun), npm qyl-mcp-server. It validates, scopes and frames tool calls and serves the qyl-investigate skill; it adds no analysis of its own.
contracts/ TypeSpec for every wire shape. It generates contracts/openapi/qyl.openapi.json, the C# types in internal/qyl.contracts (NuGet Qyl.Api.Contracts, released with the Collector at the same version) and the MCP server's TypeScript types and tool schemas.
plugins/qyl The plugin bundle: the hosted MCP connection and 18 skills, qyl-investigate among them.
packages/Qyl.Cli The qyl tool. qyl up runs a local Collector (README).
packages/Qyl.Api.Sdk An MSBuild SDK for NativeAOT ASP.NET Core APIs that are validated, documented and instrumented from the first line.
packages/Qyl.Orchestration The process supervisor qyl up runs on, as a library.
packages/Qyl.Run.Workload A synthetic workload that sends telemetry to a local Collector.
internal/ The generated C# contracts, the Collector's self-telemetry defaults and the source generators.
samples/qyl.sample An API built with Qyl.Api.Sdk.
tests/ The .NET tests (MSTest on Microsoft.Testing.Platform).
eng/ The Fallout build (eng/build), scripts, smoke tools and the Auth0 tenant configuration (eng/auth0).
docs/architecture.yaml The target architecture: layout, ownership, contracts.
.railway/railway.ts The two Railway services: qyl-collector at https://api.qyl.at and qyl-mcp at https://mcp.qyl.at.

https://mcp.qyl.at/healthz reports ok, or degraded while the Collector is unreachable or serves another contract revision. https://api.qyl.at/health reports the Collector's health and its contract_revision.

Build, test, release

mise install installs the pinned dotnet, bun and node. The build is Fallout, and ./eng/build.sh --help lists every target.

Command Does
./eng/build.sh Check --Configuration Release The gate before every push, and in CI on every push and pull request: generated contracts current, compile, .NET tests, the orchestration smoke, the Collector's contract and storage checks, and the MCP server's SDK boundary check, lint, unit tests, smokes, answer key and project isolation against the Collector built here.
./eng/build.sh CheckFull --Configuration Release Check plus the Collector NativeAOT container smoke, the packed-tool smoke and the Qyl.Api.Sdk proof. CI runs it on main; the container stages need Docker.
./eng/build.sh Contracts Regenerates the contract outputs from the TypeSpec; commit them with the TypeSpec change.
./eng/build.sh GenerateCollectorSemanticAttributeCatalog Regenerates the Collector's semantic catalog after a SemanticConventions pin change.
./release.sh Releases Version.props QylVersion: packs once into artifacts/release/<version>/ with SHA512SUMS, publishes what nuget.org and npm lack, tags v<version> and creates the GitHub release. Rerun it to resume.
mise run hosted-eval Checks the hosted MCP server's reads, scope challenges and input validation with a token from the Keychain.

Documentation

License

qyl is free, under the MIT license. That covers the Collector, the MCP server, the contracts and every package this repository publishes: qyl, qyl.<rid>, Qyl.Api.Contracts, Qyl.Api.Sdk and Qyl.Orchestration on NuGet, and qyl-mcp-server on npm.

The plugin bundle in plugins/qyl is MIT AND Apache-2.0, because it carries the ancplua-dotnet skills under Apache-2.0, with their LICENSE and NOTICE in plugins/qyl/licenses/ancplua-dotnet/. Its MSTest skills are MIT, with their LICENSE in plugins/qyl/licenses/mstest-extensions-plugin/.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
17.0.14 33 10/22/2026
17.0.13 41 10/22/2026
17.0.12 82 10/21/2026
17.0.11 61 10/21/2026
17.0.10 86 10/21/2026
17.0.9 82 10/20/2026
17.0.8 86 10/20/2026
17.0.7 74 10/20/2026
17.0.6 76 10/20/2026
17.0.5 78 10/20/2026
17.0.4 76 10/19/2026
17.0.3 80 10/19/2026
17.0.2 80 10/19/2026
17.0.1 76 10/19/2026
17.0.0 84 10/19/2026
14.0.1 168 10/17/2026
14.0.0 123 10/16/2026
13.0.0 91 10/16/2026
12.1.2 216 10/14/2026
12.1.1 91 10/12/2026
Loading failed