Skip to main content
Glama

Server Details

Calibrated probability ranges for forecasting questions, with the assumptions behind them.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation4/5

The tools mostly have distinct purposes: estimate creates a forecast, get_estimate polls an existing async result, buy_credits purchases credits, whoami reports identity/balance, and feedback submits messages. The main possible confusion is between estimate and get_estimate, but their descriptions clearly distinguish creation from polling.

Naming Consistency3/5

The set mixes predictable verb_noun names (buy_credits, get_estimate) with bare nouns or verbs (estimate, feedback) and an irregular compound (whoami). It remains readable, but there is no single consistent naming pattern across the tool set.

Tool Count5/5

Five tools is well-scoped for the service: one core estimate action, one polling action for async estimates, one billing purchase action, one identity/balance check, and one feedback channel. Each tool has a clear role and the count is comfortably within a reasonable range.

Completeness3/5

The core lifecycle of creating an estimate, polling async results, checking balance, buying credits, and sending feedback is covered. However, buy_credits requires a previously saved payment method with no tool to initiate Stripe checkout or save a card, and there is no estimate history/list or account-creation tool, creating notable workflow gaps.

Available Tools

5 tools
buy_creditsBuy Fermi creditsA
Destructive
Inspect

Cost: charges the saved card $0.50 per credit (see GET /api/v1/billing/pricing).

Purchase credits using a saved payment method (off-session).

Requires a prior Stripe Checkout session to have saved a card.
Credits are $0.50 each. Use GET /api/v1/billing/pricing to confirm
the current price.

Args:
    credits: Number of credits to purchase (minimum 1).
    api_key: Your Fermi API key from POST /api/v1/accounts. Required.

Returns:
    Dict with credits_purchased, new_balance, and payment_status, plus
    the `billing` block every Fermi tool response carries. Its
    `credit_balance` is the POST-purchase balance, and `charged_to` is
    "none": this call spends money, not credits.

Raises:
    ToolError: if authentication fails, no payment method is on file,
        or the card is declined.
NameRequiredDescriptionDefault
api_keyYes
creditsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-readOnly, destructive, non-idempotent, open-world, but the description adds the details that actually matter for a money-spending call: it charges the saved card real currency (not credits), priced at $0.50/credit with a pricing endpoint to verify, plus the three failure modes (auth failure, no payment method, declined card). That is substantive context beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with cost, which is the most decision-relevant fact, and organized into Args/Returns/Raises. Some waste: the $0.50 price is stated twice (lead line and 'Credits are $0.50 each'), and the Returns block restates what the output schema already declares.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation that spends real money, everything an agent needs to call it safely is present: price, prerequisite, minimum quantity, credential source, and error conditions. The output schema exists, so the Returns narrative is redundant but harmless rather than missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and it largely does: 'credits' gains a minimum-1 constraint not present in the schema, and 'api_key' gains provenance (from POST /api/v1/accounts) and an explicit required marker. Minor gap: nothing about upper bounds or behavior of non-integer values, though the JSON type covers that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Purchase credits using a saved payment method') and immediately names the money model ($0.50 per credit) and the off-session mechanism. The sibling tools (estimate, get_estimate, whoami, feedback) are all read/identity helpers with no overlap, so the agent can route unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit prerequisite: 'Requires a prior Stripe Checkout session to have saved a card', which tells the agent when the call will fail. There are no true alternative tools for this action, so the absence of an explicit 'use X instead' clause is not a meaningful gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimateCreate new estimateAInspect

Cost: spends quota. Anonymous callers get 3 free tier-1 estimates per UTC day (anon_simple_estimate_daily_limit). With an account it debits credit_cost_for_tier(tier) credits (tier 1/2/3 = 1/3/10), and credits_charged in the response reports the amount.

Return a calibrated probability distribution for a natural-language question.

Args:
    question: The natural-language question (e.g. "What will the price of
        Bitcoin be in 6 months?").
    unit: The unit the answer should be expressed in (e.g. "USD", "people",
        "meters").
    target_horizon: When the estimate applies (e.g. "6 months", "2030",
        "current").
    disclaimer_acknowledged: Must be true. Confirms you understand estimates
        are probabilistic decision-support only, not financial/medical/legal
        advice.
    requested_tier_id: Tier (1=fast sync, 2=grounded sync, 3=deep research
        async). Default 1.
    context: Optional extra context to condition the estimate.
    coverage_probability: Width of the confidence interval (0, 1). Default
        0.9 (90% CI).
    source_inputs: Optional list of structured inputs (files, tables) for
        the model to consider. Each item needs source_type
        ("qualitative_text", "spreadsheet", or "structured_file") and
        either content (text) or structured_data (dict/list).
    callback_url: Optional webhook URL. When set, the completed or failed
        result is POSTed here with an HMAC signature, so you don't need
        to poll for async tiers.
    api_key: Your Fermi API key from POST /api/v1/accounts. Omit to use the
        anonymous tier.
    provider: Optional LLM provider selector ("openai" or "anthropic").
        When omitted the server uses its configured default. Tier 1
        supports both providers; tiers 2-3 currently accept "openai" only.
    model: Optional model id for the selected provider. Must match the
        model configured for (tier_id, provider); omit to accept the
        default.

Returns:
    EstimateSuccessResponse as a dict: estimation_interval, distribution_family,
    distribution_parameters, point_estimate, reasoning_summary, assumptions,
    credits_charged, disclaimer, provider, model, and next_steps.

    Plus a `billing` block saying who this call was billed to and what
    is left: principal ("anonymous" or "account"), auth_source,
    charged_to ("anonymous_quota" or "credits"), credits_charged,
    credit_balance, and anonymous_estimates_remaining_today with the
    UTC instant the anonymous allowance resets. Call `whoami` to read
    the same block without making an estimate.

    next_steps.simulate carries the arguments for handing this estimate to
    neumann: root_node (distribution_type + distribution_params, ready to
    drop into run_simulation's graph.root_nodes) when the family maps
    directly, or solve_args for solve_distribution_parameters when it does
    not; note says which was emitted.

    To combine several estimates into a model with a time axis and get
    percentiles, NPV or payback out, feed them into neumann
    (https://neumann.kromatic.com) as simulation root nodes -- every
    successful estimate carries a next_steps.simulate block with the
    arguments already prepared.

Raises:
    ToolError: if the estimate service rejects the request (bad tier, out of
        credits, unknown provider, missing disclaimer acknowledgement).
NameRequiredDescriptionDefault
unitYes
modelNo
api_keyNo
contextNo
providerNo
questionYes
callback_urlNo
source_inputsNo
target_horizonYes
requested_tier_idNo
coverage_probabilityNo
disclaimer_acknowledgedYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond what the annotations cover (readOnlyHint=false, openWorldHint=true): it discloses quota spend, anonymous 3/day tier-1 limit, per-tier credit cost (1/3/10), a forced disclaimer acknowledgement, async behavior with HMAC-signed webhooks, and the exact ToolError causes (bad tier, out of credits, unknown provider, missing disclaimer). No contradiction with annotations — the call is a metered, non-idempotent write-ish operation as declared.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Mostly front-loaded — the cost/quota warning comes first, which is defensible for a metered tool — but the purpose sentence is pushed to the second block rather than leading. There is mild redundancy: the neumann / next_steps.simulate hand-off is explained twice, and the Returns section largely restates the existing output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a 12-parameter, open-world, metered tool: billing behavior, async/webhook path, error modes, auth options (api_key omitted = anonymous) and the downstream hand-off are all covered, so an agent can invoke it correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are 12 parameters, so the description carries the full burden and does so: each argument gets meaning plus examples (unit 'USD', target_horizon '6 months'), tier semantics, the source_inputs item shape (source_type enum values plus content/structured_data), provider/tier compatibility (tiers 2-3 are openai-only), and the coverage_probability default rationale. Nothing material is left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact: 'Return a calibrated probability distribution for a natural-language question', with a title confirming it creates an estimate. This is clearly distinguishable from get_estimate (retrieval), whoami (account read) and buy_credits (billing) in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete selection guidance: tier 1 is fast sync, tier 2 grounded sync, tier 3 deep research async; callback_url removes the need to poll async tiers; whoami reads the same billing block 'without making an estimate'; and neumann should be used when combining multiple estimates. It lacks an explicit 'do not call this when X' exclusion or a direct pointer to get_estimate for retrieval, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

feedbackSend feedback to the Fermi teamAInspect

Cost: free.

Submit feedback, a feature request, or a bug report to the Fermi team.

An email is sent to the team and a copy is sent to the address you provide.

Args:
    feedback_type: One of "feedback", "feature_request", or "bug".
    message: Your feedback or request (10-5000 characters). Be specific.
    sender_email: Your email address. A confirmation copy is sent here.
    sender_name: Your name (optional).
    api_key: Your Fermi API key (optional). If provided, your account ID
        is attached to the message for context.

Returns:
    Confirmation with status "sent", plus the `billing` block every
    Fermi tool response carries -- `charged_to` is "none" here, because
    sending feedback spends neither quota nor credits.

Raises:
    ToolError: if validation fails or email delivery fails.
NameRequiredDescriptionDefault
api_keyNo
messageYes
sender_nameNo
sender_emailYes
feedback_typeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses the side effect (an email is sent to the team plus a copy to the sender), the account-ID attachment behavior when api_key is supplied, and the exact ToolError failure modes. It also pre-empts confusion about the billing block by explaining that charged_to is "none" here, which no annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the cost note and the purpose before the structured Args block, so an agent gets the decision-relevant facts immediately. The Args/Returns/Raises formatting is somewhat verbose and restates parameter names, but each entry adds real constraints rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter write-side tool with an output schema, it covers everything needed to call correctly: required vs optional fields, character limits, side effects, error conditions, and confirmation shape. It even explains the billing block, so no follow-up inference is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the full semantic burden falls on the description, and it delivers: each of the five parameters is explained, including the enum values for feedback_type, the 10-5000 character bound on message (a constraint absent from the schema), and the optionality and effect of sender_name and api_key.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line states a specific verb and resource: submit feedback, a feature request, or a bug report to the Fermi team. This is trivially distinguishable from every sibling (buy_credits, estimate, get_estimate, whoami), none of which share the feedback function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with "Cost: free" and clarifies that feedback spends neither quota nor credits, which is exactly the context an agent needs before choosing to call it in a budget-sensitive workflow. There are no competing siblings to route between, so the absence of explicit exclusions is minor, but it never states a when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_estimateRead estimateA
Read-onlyIdempotent
Inspect

Cost: free. Polling never spends quota or credits.

Poll the status/result of a previously requested estimate.

Use this for tier-3 (async) estimates. Tier 3 only delivers its
result via `callback_url`, which chat-UI MCP clients (Claude.ai,
ChatGPT, grok.com) cannot receive -- so poll this tool instead with
the `estimate_id` the `estimate` call returned.

Args:
    estimate_id: The `estimate_id` returned by a previous `estimate`
        tool call.
    api_key: Your Fermi API key from POST /api/v1/accounts. Estimates
        are scoped to the principal that created them -- pass the same
        api_key (or none, for the anonymous tier) used for the original
        `estimate` call, or this will report the estimate as not found.

Returns:
    The exact shape REST's `GET /api/v1/estimates/{estimate_id}`
    returns (same `EstimatePollResponse` model, so every field it
    declares is present -- null where not applicable to the current
    status):
    - Pending: "status": "pending", plus "retry_after_seconds".
    - Failed: "status": "failed", plus "error_detail".
    - Completed: "status": "completed", plus the same fields a sync
      `estimate` call returns (estimation_interval, distribution_family,
      distribution_parameters, point_estimate, reasoning_summary,
      assumptions, credits_charged, disclaimer, provider, model,
      next_steps).

    Plus the MCP-only `billing` block every Fermi tool response carries
    (`charged_to` is "none" -- polling is free; the charge, if any,
    happened on the `estimate` call that created the record). REST's
    `GET /api/v1/estimates/{estimate_id}` does not carry it: REST
    callers have `GET /api/v1/accounts/me` instead.

Raises:
    ToolError: if `estimate_id` does not exist, or was not created by
        the resolved principal (same actionable 404 REST returns).
NameRequiredDescriptionDefault
api_keyNo
estimate_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/openWorld), it discloses cost behavior ('Polling never spends quota or credits'), the auth-scoping rule (same api_key as the originating call or the estimate reports as not found), and the failure mode (ToolError with a REST-equivalent 404). That is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded (cost note, then one-line purpose, then usage), and the Args/Returns/Raises layout is scannable. However the Returns section is long and partly redundant with the existing output schema, and the free/no-credits point is made twice.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, routing, auth scoping, error behavior, and per-status response shapes, which is more than enough for a two-parameter poll tool with an output schema. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: `estimate_id` is tied to the prior `estimate` response, and `api_key` is explained as principal scoping with an explicit anonymous-tier option. Both parameters gain semantics the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Poll the status/result of a previously requested estimate') and immediately scopes it to tier-3 async estimates, which distinguishes it from the sibling `estimate` tool. An agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('Use this for tier-3 (async) estimates') and the reason the alternative fails (callback_url is unreachable for chat-UI MCP clients such as Claude.ai, ChatGPT, grok.com). It also names the prerequisite: use the `estimate_id` the `estimate` call returned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiCheck account and quotaA
Read-onlyIdempotent
Inspect

Cost: free. Checking never spends quota or credits, and never consumes an anonymous estimate.

Report who you are to Fermi, what a call will cost, and what is left.

Call this BEFORE an `estimate` if you need to know whether it will spend
the free anonymous allowance or an account's credits, or AFTER one to see
the new balance. It works anonymously, it is free, and it consumes
nothing -- including the anonymous daily allowance it reports.

Args:
    api_key: Your Fermi API key from POST /api/v1/accounts. Omit to ask
        about the anonymous caller this transport resolves to. On the
        Streamable-HTTP transport an `Authorization: Bearer fmi_pat_...`
        header authenticates this call too, with no argument needed.

Returns:
    billing: the same block every other Fermi tool response carries --
        principal ("anonymous" or "account"), account_id,
        account_status, auth_source ("bearer", "api_key" or
        "anonymous"), charged_to, credits_charged, credit_balance,
        is_unlimited, anonymous_estimates_remaining_today, and
        anonymous_quota_resets_at.
    tiers: each tier's credit_cost, delivery mode ("sync"/"async") and
        whether it supports the anonymous trial.
    price_per_credit_usd: what one credit costs to buy.
    recent_transactions: the account's last 10 credit-ledger entries;
        null for an anonymous caller, which has no ledger.
NameRequiredDescriptionDefault
api_keyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description adds important behavioral context: the call is free, spends no quota or credits, does not consume the anonymous daily allowance it reports, and works anonymously. It also explains bearer-header authentication behavior for the HTTP transport.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loads the critical cost/free behavior before usage and argument details. It is somewhat verbose, repeating the free/no-consumption point and enumerating return fields even though an output schema already exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only account-check tool, the description covers the identity, cost, quota, anonymous-vs-account behavior, and authentication details an agent needs. Since an output schema exists, the additional return-value explanation is not required, but the definition is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 0%, the description fully explains the single `api_key` parameter: where to get it, that omitting it targets the anonymous caller, and that a bearer header can authenticate without passing it. This compensates for the schema's lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: report the caller's identity, call cost, and remaining quota. This clearly distinguishes whoami from estimate and other sibling tools by focusing on account/quota state rather than producing a cost estimate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit before/after guidance relative to `estimate`: call before to see whether an estimate will spend anonymous allowance or credits, and after to see the new balance. It does not explicitly cover when not to use it or mention other siblings such as `get_estimate`, but the primary usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedbuy_credits1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "string"
        -    }
        -  ]
        -}New value: +true
    • Changedfeedback1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Addedwhoami
  2. 4 tool updates
    • First observedbuy_credits
    • First observedestimate
    • First observedfeedback
    • First observedget_estimate

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables agents to get calibrated probability estimates for a case against any of 104 trained targets, returning a median, predictive intervals, the probability of crossing a threshold, and signals about how far the answer can be trusted. It also lets agents search the target catalog to find the right target id before estimating.
    93 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables users to record probabilistic judgments in an immutable ledger, automatically score them against outcomes, and analyze systematic biases across six classification layers. It supports natural-language interaction for logging predictions, checking randomness, and auditing data integrity while avoiding advice or replacing user judgment.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Tracks what an agent KNOWS vs INFERS vs ASSUMES with calibrated confidence. Provides tools to register, query, and analyze epistemic status of claims across domains.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources