{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "weather",
    "endpoint": "https://agentrynku.pl/api/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/agentrynku-gpw.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/agentrynku-gpw.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/agentrynku-gpw.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 1456,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 5
        },
        "findings": [
          {
            "rule": "TC07",
            "severity": "warn",
            "tool": "get_quarterly_kpis",
            "message": "the description is about 708 tokens",
            "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "get_financial_ratios",
            "message": "none of its 2 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "get_public_dividends",
            "message": "none of its 2 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "get_public_earnings_calendar",
            "message": "none of its 2 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "search_gpw_companies",
            "message": "none of its 2 parameters has a description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "5 of 5 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:25:49Z",
      "count": 5,
      "schemaTokens": 1456,
      "status": "ok",
      "tools": [
        {
          "name": "get_financial_ratios",
          "description": "GPW quarterly financial ratios from published, quality-gated reports: EBITDA, operating, net profit margins, plus equity/assets. Each percentage includes its formula and report basis. Null means missing, withheld or nonpositive denominator. No price-based valuation multiples or TTM estimates.",
          "inputSchema": {
            "properties": {
              "quartersBack": {
                "default": 8,
                "maximum": 20,
                "minimum": 1,
                "type": "integer"
              },
              "symbol": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "symbol"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "get_public_dividends",
          "description": "Known GPW dividend resolutions from issuer WZA announcements only, with amount per share, currency, status, dates and source URLs. Limited coverage: excludes vendor EODHD history and predictions. An empty result does not mean the company pays no dividend. Latest resolution generation is retained, including cancellations.",
          "inputSchema": {
            "properties": {
              "limit": {
                "default": 50,
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "symbol": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "symbol"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "search_gpw_companies",
          "description": "Find active GPW companies by name, ticker, alias or ISIN before requesting financial data. Returns canonical symbols, ISIN and public company URLs; does not search other markets. Results are bounded and truncated is explicit.",
          "inputSchema": {
            "properties": {
              "limit": {
                "default": 10,
                "maximum": 20,
                "minimum": 1,
                "type": "integer"
              },
              "query": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "query"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "get_public_earnings_calendar",
          "description": "Get known scheduled GPW reports over the next 1 to 90 days, including today in Warsaw. Covers the public market calendar, without a personal watchlist. Includes source and fetch date, removes dates superseded by published results, and declares truncation. An empty result is not proof that no companies will report.",
          "inputSchema": {
            "properties": {
              "daysAhead": {
                "default": 90,
                "maximum": 90,
                "minimum": 1,
                "type": "integer"
              },
              "limit": {
                "default": 50,
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "get_quarterly_kpis",
          "description": "Quarterly financial KPIs for a symbol (revenue, EBITDA, net income, EPS, balance sheet, cash flow, adjusted vs reported). Foundation data for predictive scanner / earnings bridge / forecast calibration. Coverage varies by GPW company and quarter. Instruments are resolved from the registry by ticker, alias or ISIN, within the Polish market. Missing data is not zero. Each row includes reportScope (null when unknown); do not assume standalone and consolidated figures are comparable. ⚠️⚠️ UNITS: monetary `...PLN` fields here are in MILLIONS — `revenuePLN: 11872` for KGHM means 11.87 BILLION, not 11872. This differs from `get_forecast`, where `baseline.ttm*PLN` is in BARE units (KGHM 39296000000); the two scales differ by exactly 1e6 (verified 2026-08-05 on 6 companies), so never compare or divide a value from this tool by one from get_forecast without converting first. ⚠️⚠️ CURRENCY: despite the `PLN` suffix, these amounts are in the issuer's REPORTING currency — always read the row's `currency` field, which may be EUR or USD. The suffix is a legacy field name, not a currency assertion. EXCEPTIONS to the million rule: `epsPLN` and `adjustedEpsPLN` are per-share and therefore in bare currency units. ⚠️⚠️ DATA QUALITY: every row carries `dataQuality` with `flagRule` (our detector's rule, null when clean), `manualVerdict` (`legit` = a human confirmed the number at the source, `confirmed_bad` = a human rejected it) and `blocksComputation` (the SHARED predicate the forecast pipeline itself applies). A row with `blocksComputation: true` is one WE do not trust: quote it only with that caveat, and never feed it into a TTM sum or a growth rate. Measured 2026-08-09: of 4665 polish-stocks rows, 257 carry a detector flag and 257 have `blocksComputation: true` - the two counts match by coincidence, not by definition: the blocked set drops one flagged row a human confirmed as `legit` and adds one row a human rejected as `confirmed_bad` without any detector flag. Always read `blocksComputation`, never infer it from `flagRule`. ⭐ PROVENANCE (ARCH-3.5): every row also carries `values.\u003cfield\u003e` = {value, currency, unit ('mln' for money, absent for per-share), asOf, source (producer label), evidenceCount, sourceUrl}. Prefer `values` over the bare `...PLN` fields: it names the currency and unit explicitly, and a field with no complete provenance is ABSENT from `values` rather than null or 0. The bare `...PLN` fields are legacy and will be removed. `withheld` lists fields returned as null (flat fields and `values`) because a data-quality flag withholds them, each with `field`, `rule` and a Polish `reason`: a profit-read flag withholds net income, parent net income, EBIT, EBITDA, EPS and their adjusted variants while revenue stays, so never read those nulls as \"not reported\".",
          "inputSchema": {
            "properties": {
              "quartersBack": {
                "default": 8,
                "description": "How many recent quarters to return. Default 8, max 20.",
                "maximum": 20,
                "minimum": 1,
                "type": "integer"
              },
              "symbol": {
                "description": "Required. XTB-style 'KGH.PL' canonicalized.",
                "type": "string"
              }
            },
            "required": [
              "symbol"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        }
      ]
    },
    "name": "Agent Rynku - Warsaw Stock Exchange (GPW) data for your agent",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": [
      {
        "registryType": "npm",
        "identifier": "agentrynku-mcp",
        "version": "1.0.0",
        "transport": "stdio"
      }
    ],
    "pageJsonUrl": "https://www.anchorterminal.com/tools/agentrynku-gpw.json",
    "popularity": {
      "githubStars": 0,
      "npmWeekly": 177
    },
    "registryName": "pl.agentrynku/gpw",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://agentrynku.pl/api/mcp"
      }
    ],
    "repository": "https://github.com/krystiangw/agentrynku-mcp",
    "reviewed": false,
    "slug": "agentrynku-gpw",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=pl.agentrynku/gpw",
    "summary": "Warsaw Stock Exchange data: quotes, ESPI/EBI filings, quarterly KPIs, earnings forecasts.",
    "updatedAt": "2026-09-25T20:06:06Z",
    "url": "https://www.anchorterminal.com/tools/agentrynku-gpw",
    "vendor": "agentrynku.pl",
    "vendorUrl": "https://agentrynku.pl/mcp",
    "version": "1.0.0",
    "websiteUrl": "https://agentrynku.pl/mcp",
    "where": "both",
    "why": [
      "vendor"
    ]
  }
}
