REST · CLI · MCP · SKILL.MD
Features
Read the network from any URL fetch with nothing installed. Install the CLI when you want CodeSampleX to observe and verify what actually happens on your machine. MCP is an adapter on the CLI.
REST
No install needed to read the network
Every answer this site renders is a plain HTTPS request away: no key, no account, no client library. A browser page, a script, a CI job or a cloud agent's fetch tool gets the same graded answer the CLI gets. The routes are open to any origin.
One request, real JSON — copy it as it is:
curl 'https://codesamplex.dev/v2/search?package=pkg:npm/axios&symbol=axios.post&os=linux&runtime=node&runtimeVersion=22'
A miss answers grade NO_SAFE_MATCH. That is a real answer: the network holds nothing it built and ran for that case. Read different[] before match — a nearby environment is never promoted to an exact one.
The read API
Everything this site renders is served from these routes, and they answer without a key. The write half — evidence batches, publishing a sample, claiming verification work — needs a seeder identity or a worker token and belongs to the CLI. The routes are listed untranslated, for the reason findings are: the paths and field names are the thing itself.
Served evidence and aggregated compatibility data are available under CDLA-Permissive-2.0. Published samples default to MIT-0. See DATA_TERMS.md.
| GET | /v2/search?q=&package=&symbol=&os=&runtime=&runtimeVersion= | Search the network from a URL: packages, symbols, error codes, graded against the environment you name. The same pipeline the MCP tool and the CLI run; a miss is spelled grade=NO_SAFE_MATCH. |
|---|---|---|
| POST | /v2/search | The same search as a JSON body: {schemaVersion:2, query, packages[], symbols[], environment{}}. Each result carries sampleUrl, exact[], different[] and adaptationNeeded[]. |
| POST | /v1/search | The frozen v1 response shape, for clients that pinned it. |
| GET | /v1/registry/packages/{purl} | One package's compatibility snapshot, by PURL. Percent-encode the slash: pkg:npm%2Faxios@1.12.0. |
| GET | /v1/registry/symbols/{ecosystem}/{name}/{symbol} | One API's snapshot: where it ran, where it failed, at what evidence level. |
| GET | /v1/samples/{sampleId} | A published sample's manifest: its case, its contract, its verification receipts. |
| GET | /v1/samples/{sampleId}/artifact | That sample's files. The id is the hash of the contents, so the bytes verify themselves. |
| GET | /findings.json?eco=&os=&runtime=&q=&basis= | Every finding the /findings page shows, as one document: what was believed, what was measured, and the sample that proves it. |
| GET | /v1/wanted | What the network has been asked for and has no sample for yet. |
| GET | /v1/adapters | The ecosystems and lockfiles the scanner reads, and which ecosystems verify. |
| GET | /v1/stats | Observation, sample and package counts — what the front page's tiles are drawn from. |
| GET | /v1/shards/{ecosystem}/{name}/{n} | The offline shard a client syncs, so a machine can answer without asking again. ETag-cached. |
| GET | /v1/peers/for-sample/{sampleId} | Peers holding that sample, for fetching it without this server. |
| POST | /v1/footprints/execution | The one write a zero-install caller may make: {sampleId, outcome: pass|fail|could_not_run, stage, environment{os,arch,runtime,runtimeVersion}}. Recorded as an unsigned self-report that weighs nothing in any grade. |
| GET | /skill.md | This surface as a machine-readable guide for an agent that can fetch a URL and nothing else. |
| GET | /version | Which build of the server answered, and in which environment. |
What each door can do
REST, MCP and the installed CLI, side by side. Every mark is checked against the router and the command list, and the READMEs carry the same marks. The MCP server is the csx binary itself, so an MCP client without csx installed has no server to talk to.
| Capability | Web REST (no install) | MCP | CLI installed |
|---|---|---|---|
| Search verified samples, graded against an environment | yes | yes | yes |
| Compatibility lookup by package, version, symbol and environment | yes | yes | partial csx search grades against the synced shards; there is no explain command |
| Read one sample's manifest, receipts and files | yes | yes | partial through csx search --json; no dedicated sample read command |
| Read the findings collection | yes | no web and REST only | no web and REST only |
| Read gaps, wanted and public stats | yes | no | partial csx stats shows local counters only |
| Use from a browser, a cloud agent or a script | yes | partial the agent's MCP host must run csx locally | no a local binary |
| Zero-install use | yes | partial the MCP server is the csx binary; the client host must have csx installed | no |
| Detect the local project and environment automatically | no | partial only what the local csx behind the MCP host can see | yes |
| Run the real local build or test | no | partial run_observed_command runs it through the local csx | yes |
| Capture sanitized, structured execution evidence | no | partial only through the local csx the MCP host runs | yes |
| File an unsigned execution footprint | yes | no files correlated adoption evidence instead | no files correlated adoption evidence instead |
| Automatic failed-build lookup hook | no | no | yes |
| Background sync and offline cache | no | no | yes |
| Privacy preview before anything is uploaded | no | no | yes |
| Publish a verified sample | no | no deliberately no publish tool | yes a person confirms at the CLI |
| Worker and matrix verification | no | no | yes |
| Signed verification receipts (ed25519, from the worker) | no | no | yes |
REST reads the network. The CLI lets the network observe reality.
Start from the CLI
These tools are how a coding agent reaches the network. The CLI reaches the same network directly, and lists everything it can do.
csx helpevery command, one line eachcsx worker --helpworker, update and mcp-config also take --help
MCP
MCP: an adapter on the CLI
This page documents the complete public MCP surface. There is deliberately no MCP tool that publishes a sample.
Find and inspect evidence
Search for a verified answer, fetch its files, or inspect compatibility evidence for one public software target and symbol.
search_known_solution
Find a verified solution graded against the environment you describe.
What it does
Searches the local CodeSampleX network cache. A hit reports its match grade, environment differences, adaptations, evidence counts, and the contract assertions that actually passed. A miss is returned as NO_SAFE_MATCH, never guessed into a hit.
When to use it
Call before using a public library, SDK, runtime, OS command or standalone CLI, or when its error may already have a verified detour.
Inputs
Required
querystring- What you are trying to do or fix, in plain words.
Optional
packagesstring[]- Public target coordinates: pkg:npm/axios@1.12.0 for a registry package or pkg:generic/cli/npm@11.5.2 for the npm CLI itself.
symbolsstring[]- Public symbol families, for example axios.post.
environmentobject- Sparse environment fingerprint; known values may include ecosystem, OS, architecture, runtime, language, compiler, package manager, module system, frameworks, execution context, browser/engine, libc, virtualization, and container runtime.
errorTextstring- Raw error text to sanitize locally into an error code and fingerprint.
JSON input example
{
"query": "send JSON and retry a reset connection",
"packages": ["pkg:npm/axios@1.12.0"],
"symbols": ["axios.post"],
"environment": {"os":"linux","runtime":"node","runtimeVersion":"22.18","executionContext":"node"}
}
Output shape and example
MCP content text plus structuredContent containing the search response and a local offerId on an eligible hit. A miss can also include packageOverview and localReady.
{
"structuredContent": {
"schemaVersion": 2,
"results": [{"grade":"EXACT","sampleId":"sha256:..."}],
"offerId": "local-offer-id"
}
}
get_sample
Fetch the manifest and readable files for one cached public sample.
What it does
Returns the sample manifest and cached text files. Each file is capped at 64 KB and binary files are skipped. Public samples are MIT-0 community artifacts.
When to use it
Use after search_known_solution returns a sampleId and you need the complete runnable example.
Inputs
Required
sampleIdstring- Content-addressed sample id in sha256:... form.
Optional
No fields.
JSON input example
{"sampleId":"sha256:0123456789abcdef..."}
Output shape and example
MCP content text plus structuredContent with sampleId, manifest, and a path-to-content files object.
{
"structuredContent": {
"sampleId": "sha256:...",
"manifest": {"license":"MIT-0","packages":["pkg:npm/axios@1.12.0"]},
"files": {"src/index.mjs":"..."}
}
}
explain_compatibility
Explain cached compatibility evidence for a package and optional symbol.
What it does
Reads local compatibility shards and keeps project observations separate from contract verification evidence instead of adding unlike evidence together.
When to use it
Use when you need the per-symbol evidence behind a result or want to compare one package with a target environment.
Inputs
Required
packagestring- Package purl, for example pkg:npm/axios@1.12.0.
Optional
symbolstring- Public symbol family, for example axios.post.
environmentobject- The same sparse environment fingerprint accepted by search_known_solution.
JSON input example
{
"package": "pkg:npm/axios@1.12.0",
"symbol": "axios.post",
"environment": {"runtime":"node","runtimeVersion":"22.18"}
}
Output shape and example
MCP content text plus structuredContent with package, symbol, and the underlying compatibility snapshot (or null).
{
"structuredContent": {
"package": "pkg:npm/axios@1.12.0",
"symbol": "axios.post",
"snapshot": {"schemaVersion":1,"rows":[]}
}
}
Run with observation
Execute a normal build or test while recording a sanitized public-package outcome.
run_observed_command
Run an argv command through the evidence loop and return its real exit code.
What it does
Scans public dependencies, runs the command locally, classifies its stage and result, and returns only sanitized error templates alongside the original exit code.
When to use it
Use for builds and tests after adopting or creating package-dependent code, instead of running the command outside CodeSampleX.
Inputs
Required
commandstring[]- Command argv, for example ["npm","test"].
Optional
cwdstring- Working directory; defaults to the current directory.
JSON input example
{"command":["npm","test"],"cwd":"project"}
Output shape and example
MCP content text plus structuredContent with exitCode, stage, result, sanitizedErrors, and evidenceClass.
{
"structuredContent": {
"exitCode": 0,
"stage": "PROJECT_TEST",
"result": "PASS",
"sanitizedErrors": [],
"evidenceClass": "USAGE_OBSERVATION"
}
}
Close the evidence loop
Report whether an offered answer worked, or prepare a clean-room sample proposal after a miss.
report_sample_adoption
Record whether a search result was applied and whether the next build passed.
What it does
Correlates the report with the local offer returned by search_known_solution and records ADOPTION_EVIDENCE. A failure is counted as avoided only when the full local correlation proves it.
When to use it
Call after deciding whether to use an offered sample, once the post-adoption build result is known or explicitly unknown.
Inputs
Required
offerIdstring- Opaque local offer id returned by search_known_solution.
sampleIdstring- The offered sha256 content address.
appliedboolean- Whether the sample approach was applied.
Optional
buildPassboolean- Whether the project built or passed after adoption; omit when unknown.
JSON input example
{"offerId":"local-offer-id","sampleId":"sha256:...","applied":true,"buildPass":true}
Output shape and example
MCP content text plus structuredContent with recorded, uploadQueued, sampleId, applied, reportedFailureAvoided, evidenceClass, and buildPass when supplied.
{
"structuredContent": {
"recorded": true,
"uploadQueued": true,
"sampleId": "sha256:...",
"applied": true,
"buildPass": true,
"reportedFailureAvoided": false,
"evidenceClass": "ADOPTION_EVIDENCE"
}
}
report_anomaly
Submit a verification request when a CSX answer and your own local run concretely disagree.
What it does
Files a CONCRETE, reproducible disagreement between what CodeSampleX returned and what was measured locally — a passing conclusion that fails on this machine, or a returned symbol signature the public package does not export. It is a verification request, not a finding: the report is queued for an independent re-run, and only a signed receipt can confirm it. Idempotent by fingerprint, so the same mismatch twice is one report.
When to use it
Use only with a measured local PASS or FAIL. "This looks wrong to me" is refused, and so is a NO_SAFE_MATCH with no reproducible public failure attached.
Inputs
Required
anomalyTypestring- Which kind of mismatch this is.
packagestring- The exact public coordinate the mismatch is about.
csxObservedobject- What CSX actually concluded.
localObservedobject- What was measured locally; result must be PASS or FAIL.
Optional
symbolstring- Symbol family involved.
environmentobject- Sparse environment fingerprint.
sampleIdstring- The sample the contested answer came from — what makes it reproducible.
evidenceIdstring- The evidence id the contested answer came from.
reproduciblestring- yes | no | unknown, as measured.
confidencestring- low | medium | high. Ranking only, never truth.
errorTextstring- Raw local error output. Sanitized on this machine and never forwarded raw.
relatedIdsstring[]- Related sample, evidence or dependency ids.
llmHypothesisstring- A guess at the cause. Stored separately and excluded from the verdict.
JSON input example
{"anomalyType":"CONTRACT_DISAGREES","package":"pkg:npm/axios@1.12.0","csxObserved":{"result":"PASS"},"localObserved":{"result":"FAIL"}}
Output shape and example
MCP content text plus structuredContent with the report id and its queued state.
{
"structuredContent": {
"reported": true,
"queuedForVerification": true,
"confirmed": false
}
}
report_csx_issue
Report a reproducible defect in CodeSampleX itself — the tools, server, site, verifier or farm.
What it does
Files a defect in the product as distinct from its data: an answer that hid the failure you were looking at, a recommendation from an ecosystem the question never mentioned, a tool contract that made an agent behave wrongly, a response contract that breaks inconsistently on the same input. Idempotent by fingerprint: the same defect twice is one report with a higher occurrence count, never a second ticket.
When to use it
Use report_anomaly instead when the disagreement is about a PACKAGE rather than about this product. This one is opt-in: it creates no ticket, a person triages it, and a week with no reports is normal.
Inputs
Required
affectedSurfacestring- Which surface this is about.
issueKindstring- Which kind of defect this is.
componentstring- The tool or endpoint, e.g. search_known_solution.
actualBehaviorstring- What actually happened, in one short sanitized sentence.
expectedBehaviorstring- What should have happened. It must differ from actualBehavior.
Optional
requestFingerprintstring- A stable non-identifying request id — what makes two occurrences one report.
publicInputobject- The public part of the input that triggered it.
reproduciblestring- yes | no | unknown, as measured.
confidencestring- low | medium | high. Priority hint only, never truth.
relatedIdsstring[]- Related stable ids: sample, evidence, dependency, finding.
llmHypothesisstring- A guess at the cause. Stored separately and excluded from the verdict.
JSON input example
{"affectedSurface":"MCP_TOOL","issueKind":"WRONG_RESULT","component":"search_known_solution","actualBehavior":"returned a cargo sample for a go build","expectedBehavior":"NO_SAFE_MATCH"}
Output shape and example
MCP content text plus structuredContent with the report id and its occurrence count.
{
"structuredContent": {
"reported": true,
"occurrences": 1,
"ticketCreated": false
}
}
propose_public_sample
Create a sanitized clean-room brief and a scaffolded local workspace.
What it does
Builds a proposal from a goal, public package purls, and public symbols, then returns generation instructions and a workspace path that already holds spec.json, PROMPT.md and a csx.json manifest scaffold. If it cannot create that workspace it fails instead of returning a path. This tool cannot publish.
When to use it
Use after NO_SAFE_MATCH when you solved the boundary and the observed build or contract passed.
Inputs
Required
goalstring- The behavior the sample should prove.
packagesstring[]- Public package purls the sample must use.
Optional
symbolsstring[]- Public symbol families the sample should demonstrate.
JSON input example
{"goal":"axios upload progress","packages":["pkg:npm/axios@1.12.0"],"symbols":["axios.post"]}
Output shape and example
MCP content text plus structuredContent with spec, prompt, workdir, and publishRequiresUserApproval.
{
"structuredContent": {
"spec": {"goal":"axios upload progress","packages":["pkg:npm/axios@1.12.0"]},
"prompt": "Generate the sample...",
"workdir": "<local clean-room path>",
"publishRequiresUserApproval": true
}
}
Inspect this installation
Read recent local search outcomes or the local dashboard counters without uploading anything.
list_local_hits
List recent search hits, grades, and adoption outcomes stored locally.
What it does
Returns recent hit rows with timestamp, query, grade, sample id, adopted state, and post-build result when it was reported.
When to use it
Use to audit which answers this installation received and whether they were later adopted.
Inputs
Required
No fields.
Optional
No fields.
JSON input example
{}
Output shape and example
MCP content text plus structuredContent with a hits array. postBuildPass is omitted when unknown.
{
"structuredContent": {
"hits": [{"ts":"2026-08-13T10:00:00Z","query":"axios post","grade":"COMPATIBLE","sampleId":"sha256:...","adopted":true,"postBuildPass":true}]
}
}
get_local_stats
Read mode, cache, queue, hit, and adoption counters for this installation.
What it does
Returns the current local stats object. Common keys include mode, hits, cachedSamples, queuedUploads, pendingObservations, and the verified-detour outcome counters; the available set can grow.
When to use it
Use to check initialization, cache readiness, pending community work, or whether the evidence loop is being used repeatedly.
Inputs
Required
No fields.
Optional
No fields.
JSON input example
{}
Output shape and example
MCP content text plus the local stats map directly as structuredContent.
{
"structuredContent": {
"mode": "community",
"hits": 7,
"cachedSamples": 31,
"queuedUploads": 0,
"pendingObservations": 0
}
}
For an agent that can fetch a URL and nothing else
A machine-readable guide to this surface: what the network answers, when to ask, the endpoints in order, what a grade means, how to treat an environment mismatch, and how to leave an optional execution footprint. It asks nothing of you beyond HTTPS.