# Daystruct

> Find source-package workflows, inspect live prices and evidence, and connect with a scoped key.

- name: ai.daystruct.api/daystruct
- version: 1.2.0
- connection class: unknown (unknown)
- trust: 61/100 flags: no-repository
- quality: 72/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.daystruct.api%2Fdaystruct
- tools: https://api.protogrid.dev/v1/servers/ai.daystruct.api%2Fdaystruct/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "daystruct": {
      "type": "http",
      "url": "https://api.daystruct.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${DAYSTRUCT_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${DAYSTRUCT_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 27
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website -unreachable(1 failures) +updated-27d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 72/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 25 of 25 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,058 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 18 tool changes in 30 days
- fail `stability.rug_pull`: 8 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 25, about 6,058 tokens to load them all
- tool set hash: aaadcf39a5423518e56e75a9f1810345
- tools last changed: 2026-10-14T04:27:43.882Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.daystruct.api/daystruct.svg)](https://protogrid.dev/servers/ai.daystruct.api/daystruct)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-14 `discover_daystruct_capabilities` changed (description, inputSchema) **meaning changed**
  - before: Find available Daystruct capabilities using a task sentence or tool name. Query searches return up to eight ranked compact descriptors, matched terms, requirements, limitations, prices and profile links; meta.matched and fullResults expose truncation. Inspect a selected capability by reference for its full contract before requesting help. Provider availability is not proof a task will succeed. Licensing filters narrow the list to source packages whose licensing evidence matches; entries with no licensing evidence are excluded rather than assumed to pass, and a filtered list returns summary licensing only. Read a capability's profile for its full receipt. Licensing findings are evidence against a configured policy, not legal advice.
  - after: Browse every public Daystruct capability without an account, or search using a task sentence or tool name. Lists default to eight compact descriptors. Set limit (1-100) and offset to follow meta.nextOffset until null; view: full returns up to 100 full metadata records per page. Category and delivery filters narrow the list. Responses carry live freshness, requirements, limitations, prices and profile links; inspect a reference for its full contract before using it. Provider availability is not proof a task will succeed. Licensing filters exclude entries with no licensing evidence; read a profile for its full receipt. Licensing findings are evidence against a configured policy, not legal advice.
- 2026-10-13 `resolve_task_capabilities` changed (inputSchema)
- 2026-10-13 `resolve_task_capabilities` changed (description, inputSchema) **meaning changed**
  - before: Select relevant capabilities progressively, or request full delivery. Optional task session remembers prior delivery and reported results; selection never executes or acquires a capability.
  - after: Select relevant capabilities progressively, or request full delivery. Charges the published resolve price (/api/v1/pricing) to a key with read + requests:write; data.economics reports chargedCredits and creditsRemaining. Optional maxPriceCredits caps this call. Optional task session remembers prior delivery and reported results; selection never executes or acquires a capability.
- 2026-10-13 `get_daystruct_account` added
  - Read the connected key's account: available and reserved credits, the key's scopes, its per-call spending limit (null means none) and where the owner adds credits. Check this before a paid call, show the user the price first, and tell them what was spent afterwards. Read-only; never returns the key.
- 2026-10-09 `plan_project_development` added
  - Get a small stage-specific capability selection and concrete next actions from a caller-approved project projection. Keep source and full snapshots local. Caller-reported outcomes are not verified execution. Does not acquire, execute, store project context or send reminders.
- 2026-09-25 `read_recent_evidence_changes` changed (description) **meaning changed**
  - before: Read the bounded canonical change feed.
  - after: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Read the bounded canonical change feed.
- 2026-09-25 `select_model` changed (description)
  - before: Given a need -- minimum context window, required capabilities, a price ceiling -- return the models that satisfy it, cheapest input price first, with the corroboration behind each record so you can judge how well-sourced it is. Prices are per million tokens. A model with no published price is returned under undetermined rather than excluded, so an unpriced model never reads as a disqualified one. This returns candidates and their evidence, not a recommendation.
  - after: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a need -- minimum context window, required capabilities, a price ceiling -- return the models that satisfy it, cheapest input price first, with the corroboration behind each record so you can judge how well-sourced it is. Prices are per million tokens. A model with no published price is returned under undetermined rather than excluded, so an unpriced model never reads as a disqualified one. This returns candidates and their evidence, not a recommendation.
- 2026-09-25 `check_release_support` changed (description)
  - before: Given a product and version, return whether that release line is supported, in security-fix-only maintenance, or past end of life, with the dates behind the answer and the cycles you could upgrade into. A line with no published end-of-life returns undetermined rather than supported.
  - after: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a product and version, return whether that release line is supported, in security-fix-only maintenance, or past end of life, with the dates behind the answer and the cycles you could upgrade into. A line with no published end-of-life returns undetermined rather than supported.
- 2026-09-25 `lookup_vulnerability` changed (description)
  - before: Given a vulnerability identifier such as a CVE, return what is held about it: the affected package and version range, the version that fixes it, severity, and whether it is recorded as known-exploited. Use this when you have an identifier rather than a package you are running. Fields come back as claims carrying their own authority. status 'known' with authority 'exclusive' means Daystruct has evidence for the value; if you hold a different value, treat it as a conflict to resolve. status 'unknown' with authority 'non_exclusive' means Daystruct has no evidence either way -- an absence of evidence, which does not contradict or supersede anything you already know: keep what you independently know, and stay uncertain if you do not. A field returned as null means Daystruct looked and holds nothing for it; no other Daystruct tool will have it either. Exploitation status is never reported false from a partial catalog.
  - after: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a vulnerability identifier such as a CVE, return what is held about it: the affected package and version range, the version that fixes it, severity, and whether it is recorded as known-exploited. Use this when you have an identifier rather than a package you are running. Fields come back as claims carrying their own authority. status 'known' with authority 'exclusive' means Daystruct has evidence for the value; if you hold a different value, treat it as a conflict to resolve. status 'unknown' with authority 'non_exclusive' means Daystruct has no evidence either way -- an absence of evidence, which does not contradict or supersede anything you already know: keep what you independently know, and stay uncertain if you do not. A field returned as null means Daystruct looked and holds nothing for it; no other Daystruct tool will have it either. Exploitation status is never reported false from a partial catalog.
- 2026-09-25 `check_security_exposure` changed (description)
  - before: Given a package and the version you are running, return the known vulnerabilities that affect it, worst first, each with the version that fixes it. Advisories whose affected range could not be parsed are returned under undetermined; treat undetermined as unanswered, never as safe.
  - after: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a package and the version you are running, return the known vulnerabilities that affect it, worst first, each with the version that fixes it. Advisories whose affected range could not be parsed are returned under undetermined; treat undetermined as unanswered, never as safe.

Full history: https://api.protogrid.dev/v1/servers/ai.daystruct.api%2Fdaystruct/changes

## Remotes

- https://api.daystruct.ai/mcp (streamable-http, auth none, reachable false, uptime30d 0.9351852)

## Packages

_none_

## Tools (25)

- `answer_software_questions`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Resolve up to four package/API questions and an optional runtime compatibility check.
- `check_release_support`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a product and version, return whether that release line is supported, in security-fix-only maintenance, or past end of life, with the dates behind the answer and the cycles you could upgrade into. A line with no published end-of-life returns undetermined rather than supported.
- `check_security_exposure`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a package and the version you are running, return the known vulnerabilities that affect it, worst first, each with the version that fixes it. Advisories whose affected range could not be parsed are returned under undetermined; treat undetermined as unanswered, never as safe.
- `close_task_session`: Close a task with its reported outcome and compact summary.
- `compat_check`: Resolve Daystruct capabilities to exact versions that fit each other, or get the exact constraint that broke with suggested alternatives. Send the project manifest by default: project.runtime (the node or python version the project runs), project.platform, and the project's package-lock.json (or an installed name->version map) plus the dependency sections of package.json. That makes the answer project-checked rather than bundle-only. Never send source code or other files; only those fields are read and nothing is stored. The result's scope says what it covers (bundle-only, project-checked, project-verified). Its state is compatible, except when you pass bundle (for example security-scanners@latest-verified) instead of capabilities: then it is verified, because that exact set passed its integration suite, and the result names the run and the environment it ran in. Affected versions are refused and listed under advisoriesAvoided; a deprecated version is chosen only when nothing else fits and is named in notes. To reach project-verified, fetch the verify kit for the resolved members, show the user the report the script prints, send it only with the user's agreement (--send), and pass the returned report id as verifyReportId.
- `create_task_session`: Start compact task context with optional capability steps and dependencies. Requires read and requests:write. No conversation or reasoning trace is stored.
- `daystruct_status`: Read the public Daystruct manifest: how capabilities are discovered, checked for compatibility and delivered.
- `discover_daystruct_capabilities`: Browse every public Daystruct capability without an account, or search using a task sentence or tool name. Lists default to eight compact descriptors. Set limit (1-100) and offset to follow meta.nextOffset until null; view: full returns up to 100 full metadata records per page. Category and delivery filters narrow the list. Responses carry live freshness, requirements, limitations, prices and profile links; inspect a reference for its full contract before using it. Provider availability is not proof a task will succeed. Licensing filters exclude entries with no licensing evidence; read a profile for its full receipt. Licensing findings are evidence against a configured policy, not legal advice.
- `get_compat_verify_kit`: Return the files of the local verify step for exact source members from compat_check: a script, its plan, and the interface conformance suites. Write them to a scratch directory and run `node daystruct-verify.mjs` from the user's project; it runs the members' own tests and conformance suites and prints a report of counts and versions only. It sends nothing unless run with --send, which needs the user's agreement. Native members cannot be verified locally.
- `get_context_contract`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Read a databank's identity, temporal, dimension, and context-packet contract.
- `get_daystruct_account`: Read the connected key's account: available and reserved credits, the key's scopes, its per-call spending limit (null means none) and where the owner adds credits. Check this before a paid call, show the user the price first, and tell them what was spent afterwards. Read-only; never returns the key.
- `get_daystruct_validated_guidance`: Retrieve reviewed Frontier guidance scoped to an exact databank, task family and tested model. Returns only live, unexpired promotions and their evidence limits; never private test fixtures.
- `get_entity_evidence`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Read canonical facts, aliases, history, and provenance for an entity.
- `get_task_session`: Read compact task context or preview the next ready capabilities without consuming them or extending the session TTL.
- `list_daystruct_guidance_scopes`: Find task families and exact tested models with live Frontier guidance for a databank, before requesting that guidance.
- `lookup_vulnerability`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a vulnerability identifier such as a CVE, return what is held about it: the affected package and version range, the version that fixes it, severity, and whether it is recorded as known-exploited. Use this when you have an identifier rather than a package you are running. Fields come back as claims carrying their own authority. status 'known' with authority 'exclusive' means Daystruct has evidence for the value; if you hold a different value, treat it as a conflict to resolve. status 'unknown' with authority 'non_exclusive' means Daystruct has no evidence either way -- an absence of evidence, which does not contradict or supersede anything you already know: keep what you independently know, and stay uncertain if you do not. A field returned as null means Daystruct looked and holds nothing for it; no other Daystruct tool will have it either. Exploitation status is never reported false from a partial catalog.
- `plan_project_development`: Get a small stage-specific capability selection and concrete next actions from a caller-approved project projection. Keep source and full snapshots local. Caller-reported outcomes are not verified execution. Does not acquire, execute, store project context or send reminders.
- `prepare_daystruct_capabilities`: Group up to six discovered capability IDs into a plan with each profile and delivery instructions. Missing entries remain explicit. Does not acquire, execute, check combined compatibility or charge credits. Your agent can combine these pieces with Daystruct knowledge and verify the resulting task.
- `read_recent_evidence_changes`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Read the bounded canonical change feed.
- `record_task_event`: Report viewed, called, succeeded, failed or skipped capability status, or task stage. Usage and outcomes remain client-reported.
- `resolve_daystruct_bundle`: Read a saved, owned or public bundle with pinned source versions and current member availability. Returns a composition plan, not an execution or purchase. Each capability retains its usage terms.
- `resolve_task_capabilities`: Select relevant capabilities progressively, or request full delivery. Charges the published resolve price (/api/v1/pricing) to a key with read + requests:write; data.economics reports chargedCredits and creditsRemaining. Optional maxPriceCredits caps this call. Optional task session remembers prior delivery and reported results; selection never executes or acquires a capability.
- `search_daystruct_library`: Search this account's saved or owned capabilities and bundles. Returns a small shortlist; saving does not acquire, execute or grant access to source. Inspect a selected profile before use.
- `search_entities`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Search normalized entities by databank, type, provider, or capability.
- `select_model`: Deprecated: this evidence tool is no longer refreshed and will be removed on or after 2026-12-31. For building, use discover_daystruct_capabilities and compat_check. Given a need -- minimum context window, required capabilities, a price ceiling -- return the models that satisfy it, cheapest input price first, with the corroboration behind each record so you can judge how well-sourced it is. Prices are per million tokens. A model with no published price is returned under undetermined rather than excluded, so an unpriced model never reads as a disqualified one. This returns candidates and their evidence, not a recommendation.
