Service Grant MCP

Communauté Autres

Local stdio server for Gooo-generated service-grant narrowing decisions: checks preservation of one required request and returns the full proof with source/generation bindings. It does not apply grants or authenticate supplied facts.

Installation

Les étapes d'installation sont dans la documentation ci-dessous. Documentation

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Inspect a service-grant change through MCP
  2. Build and connect
  3. Call the tool
  4. Versions and verification
  5. Optional ordered required requests

Inspect a service-grant change through MCP

This local stdio server lets a coding agent discover and call one tool, assess_service_grant. It checks whether a supported narrowing preserves one required service request. The decision is made by the existing Gooo generation; the Go adapter only handles MCP and exact fact transport.

For example, narrowing * to mcp://* retains mcp://weather. Narrowing the same grant to http://* removes that request. Both are successful assessments, with different decisions.

Build and connect

Build from a reviewed checkout with Go 1.27.3:

GOTOOLCHAIN=local GOWORK=off CGO_ENABLED=0 \
  go -C examples/service-grant-mcp build -trimpath -o /absolute/private/bin/gooo-service-grant-mcp .

The build downloads the pinned public modules through the configured Go proxy and checksum service. The resulting native executable needs no Go or Gooo installation at runtime. Configure your MCP host to launch the absolute executable path over stdio, without arguments. This server opens no HTTP port, needs no API key and performs no model call.

The Python standard-library wire verifier exercises protocol versions 2025-11-25 and 2026-07-28. It checks discovery, tool schemas, repeated calls, exact native CLI proof equality, strict input errors and protocol-only stdout. The Go tests also compare concurrent handler calls with those complete native proofs; the focused workflow runs them with the race detector on Linux and macOS. Five Python regression checks use actual exited child processes and buffered pipes to verify that a failed request retains its first error and diagnostics. Injected cancellation exceptions check propagation after cleanup; they do not establish operating-system signal behavior. These observations do not establish that a task was completed inside any particular agent application.

Call the tool

Choose assess_service_grant for one required service request, or start the server with --many-required and choose assess_service_grant_change for an ordered list. Discovery includes descriptions and examples for every input field, including each list item's type and name. These identify a service such as mcp://weather, rather than an individual tool or a URL path. Use before for the previous grant and after for the proposed replacement; preserve supplied text instead of repairing an unsupported identifier.

Supply exactly four JSON strings as the tool arguments object:

{
  "before": "*",
  "after": "mcp://*",
  "required_type": "mcp",
  "required_name": "weather"
}

The result includes the original facts, a seven-field decision and the full compiler/generation/source bindings, in both MCP structuredContent and a JSON text content block. Preserve the complete result.

ResultMeaning
ELIGIBLEThis supported subset preserves the supplied required request.
REFUSEDThe represented change fails the preservation or refinement check.
INVALID_INPUTThe strings do not meet the Gooo policy's canonical domain.
MCP isError: trueTransport, source-binding or execution failure; no policy decision is returned.

Duplicate keys, missing or extra fields, null, wrong types and unpaired Unicode surrogates are transport errors. The raw arguments object is limited to 4,096 bytes; a complete inbound stdio frame is separately limited to 64 KiB. These transport limits are distinct from the policy's represented string domain.

The supplied previous grant and required request are not authenticated here. The tool applies no grant, checks no live authority and contacts no service. The conditional application example demonstrates the separate version/writer guards needed by an application that automatically applies a change.

Versions and verification

The runtime is pinned to the public agentmesh-service-policy module v0.0.0-20261020182808-7180a4a0f36a. Its Gooo compiler source is 205896a413e5dea92366309c35ae85e542d055f6; this adapter does not upgrade or run the language engine. MCP transport uses the official Go SDK v1.8.0. go.sum pins both modules and their dependency graph.

The files under fixtures/ retain actual native CLI inputs and outputs. fixtures/origin.json records their hashes, actual public module, Go 1.27.3 build identity and platform. Earlier Linux observations are retained as history; they do not certify these new bytes. The verifier compares whole proof objects, including false/empty fields and all 89 asset bindings; it does not reconstruct a substitute policy result.

To verify a built command, choose a fresh output directory:

python3 -I -B examples/service-grant-mcp/verify.py \
  --binary /absolute/private/bin/gooo-service-grant-mcp \
  --out /absolute/private/new-mcp-verification

Report the platform, source version, command, exit status and first diagnostic in the first-run feedback form. Choose Native setup, verification, or replay and use synthetic public facts. Feedback about a real task or a missing capability is more useful than a claim of compatibility with every MCP client or every service-pattern language.

Optional ordered required requests

The default command and assess_service_grant tool use the current 205 profile, seven decision fields and 89 asset bindings. Start the same native command with --many-required to additionally expose assess_service_grant_change. Its arguments are one object, for example:

{"before":"*","after":"mcp://*","required_requests":[{"type":"mcp","name":"weather"},{"type":"mcp","name":"calculator"}]}

The optional tool preserves request order and duplicates. It returns the complete ordered-column facts, 12 typed decision fields and the many-request generation's 30 asset and five source-hash bindings. Both policy modules were generated with compiler 205896a using Go 1.27.3. Domain-invalid requests and the 257-request policy limit return decisions; malformed JSON returns no partial proof. Supplied facts are unsigned: this tool authenticates no authority and applies no grant. The five Gooo source bodies remain repository sources, not embedded module files.

Run the existing default wire check and the optional check separately after building the transport as above. The optional check reads the exact public service-grant-many dependency selected by this module:

mcp_binary=/absolute/private/bin/gooo-service-grant-mcp
mkdir -p out
python3 -I -B examples/service-grant-mcp/verify.py \
  --binary "$mcp_binary" --out "$PWD/out/mcp-default-wire"
many_module="$(go -C examples/service-grant-mcp list -m -f '{{.Dir}}' \
  github.com/kimjooyoon/gooo-go-ports/examples/service-grant-many)"
python3 -I -B examples/service-grant-mcp/verify_many.py \
  --binary "$mcp_binary" \
  --legacy-verifier "$PWD/examples/service-grant-mcp/verify.py" \
  --many-module "$many_module" --out "$PWD/out/mcp-many-wire"

Both clients exercise the two documented protocol versions without a model. The paired MCP input cannot express a mismatch between two column lengths; that separate public Go API case remains covered in service-grant-many tests.

Questions fréquentes

Qu'est-ce que Service Grant MCP ?

Local stdio server for Gooo-generated service-grant narrowing decisions: checks preservation of one required request and returns the full proof with source/generation bindings. It does not apply grants or authenticate supplied facts.

Comment installer Service Grant MCP ?

Suivez les étapes d'installation de sa documentation, affichée sur cette page et dans son dépôt.

Service Grant MCP est-il open source ?

Oui. Son code est sur GitHub sous licence BSD-3-Clause.

Qui maintient Service Grant MCP ?

Il est publié par kimjooyoon. AI.tn le référence sans le maintenir ni le recommander.

Issu des listes communautaires awesome-mcp-servers et du dépôt GitHub du projet. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.