Tharga.Platform.Mcp
2.1.0
dotnet add package Tharga.Platform.Mcp --version 2.1.0
NuGet\Install-Package Tharga.Platform.Mcp -Version 2.1.0
<PackageReference Include="Tharga.Platform.Mcp" Version="2.1.0" />
<PackageVersion Include="Tharga.Platform.Mcp" Version="2.1.0" />
<PackageReference Include="Tharga.Platform.Mcp" />
paket add Tharga.Platform.Mcp --version 2.1.0
#r "nuget: Tharga.Platform.Mcp, 2.1.0"
#:package Tharga.Platform.Mcp@2.1.0
#addin nuget:?package=Tharga.Platform.Mcp&version=2.1.0
#tool nuget:?package=Tharga.Platform.Mcp&version=2.1.0
Tharga Platform Mcp
Platform bridge for Tharga.Mcp. Connects MCP tool and resource invocations to Tharga.Platform's authentication, scope enforcement, and audit logging.
What it does
- Populates
IMcpContextfrom the authenticatedHttpContext.User(works with both OIDC and API Key authentication) - Enforces provider scope class:
McpScope.SystemrequiresRoles.Developer,McpScope.Teamrequires team membership - Emits audit log entries for every MCP tool invocation — success and failure
- Registers built-in
mcp:*scopes in Platform's scope registry - Requires authentication on the MCP endpoint — anonymous requests are rejected
Quick start
builder.Services.AddThargaMcp(mcp =>
{
mcp.AddPlatform(); // bridge to Platform auth/scopes/audit
// ... other provider packages (e.g. mcp.AddMongoDB())
});
app.UseThargaMcp();
User and team resources
Always-on resource providers that surface the authenticated caller's own data. Both providers self-gate on the principal's claims, so anonymous and system-only callers see no resources.
User scope (McpScope.User)
| URI | Contents |
|---|---|
platform://me |
The caller's IUser (key, identity, name, email) and a memberships array — for each team the caller is in, its teamKey, teamName, plus the caller's accessLevel and membership state. |
Listed when the principal carries a NameIdentifier (or equivalent) claim. Read fails with UnauthorizedAccessException if IUserService.GetCurrentUserAsync returns null.
Team scope (McpScope.Team)
| URI | Contents |
|---|---|
platform://team |
Metadata for the caller's current team (from the TeamKey claim): key, name, icon, consentedRoles. |
platform://team/members |
Members of the current team: key, name, accessLevel, state, tenantRoles, scopeOverrides, and an invited flag. |
platform://team/apikeys |
API keys for the current team. Raw key values are redacted (the apiKey property is omitted entirely). Listed only when IApiKeyAdministrationService is registered. |
Listed only when the principal carries a TeamKey claim. Read fails with UnauthorizedAccessException if no team is selected. Cross-tenant team listing (reading other teams) is intentionally not supported here — that's a future system-scope provider once ITeamService.GetAllTeamsAsync is added.
System-scope diagnostic resources (opt-in)
Expose read-only diagnostic data under platform://system/* for callers with the Developer role. Non-developers see no resources and get UnauthorizedAccessException on read.
builder.Services.AddThargaMcp(mcp =>
{
mcp.AddPlatform(o =>
{
o.ExposeSystemResources = true;
});
});
Available resources (listed only when the matching dependency is registered):
| URI | Contents |
|---|---|
platform://system/apikeys |
System API keys (not bound to a team). Raw key values are redacted. |
platform://system/roles |
Tenant roles registered via AddThargaTenantRoles |
platform://system/audit |
Most recent ~100 audit entries from the last 7 days |
Per-team API-key listings now ship under platform://team/apikeys (see "Team scope" above). Cross-tenant team listings remain deferred — they require a new ITeamService.GetAllTeamsAsync method.
Related packages
| Package | Description |
|---|---|
| Tharga.Mcp | MCP foundation (contracts, transport) |
| Tharga.Team.Service | Platform scope/audit primitives |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
-
net10.0
- Tharga.Mcp (>= 0.1.4)
- Tharga.Team.Service (>= 2.1.0)
-
net9.0
- Tharga.Mcp (>= 0.1.4)
- Tharga.Team.Service (>= 2.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.