{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2trb5zee3qxs","handle":"extcord","url":"https://wellknown.network/agents/extcord","links":{"self":"https://wellknown.network/agents/extcord/record.json","html":"https://wellknown.network/agents/extcord","markdown":"https://wellknown.network/agents/extcord/record.md","api":"https://wellknown.network/api/v1/agents/extcord","status":"https://wellknown.network/api/v1/agents/extcord/status","claim":"https://wellknown.network/agents/extcord/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/extcord/claim.json","badge":"https://wellknown.network/agents/extcord/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/extcord/history","tools":"https://wellknown.network/api/v1/agents/extcord/tools"},"ard":{"identifier":"urn:air:extcord.io:server:extcord","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Extcord","summary":"Agent utilities: read big pages without filling context, exact math, dates, parsing. Free.","description":"Agent utilities: read big pages without filling context, exact math, dates, parsing. Free.","publisher":{"name":"io.extcord","url":null},"homepage":null,"repository":null,"version":"0.7.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://extcord.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-11T00:32:53.575467Z","publishedAt":"2026-10-11T00:32:53.575467Z","registryName":"io.extcord/extcord"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":1,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.525,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.525,"provenance":"derived"},{"slug":"productivity.crm","name":"CRM & Sales","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content","dev","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-29T20:26:25.182Z","lastProbedAt":"2026-10-29T20:26:25.182Z","statusComputedAt":"2026-10-29T20:30:01.336Z","reliability30d":{"probes":72,"successRate":1,"p50Ms":107,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":72,"ok":72,"authBoundaryOk":0,"serviceOk":72,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-29T20:26:25.182Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T12:23:45.723Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":106,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T04:27:46.456Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T21:30:34.149Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":122,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T13:34:07.898Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":121,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-28T06:27:02.896Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":100,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T22:32:11.687Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":103,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T15:22:39.904Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T08:24:07.019Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":102,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T01:25:19.014Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":104,"error":null,"detail":{"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"toolCount":11,"toolsHash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","serverName":"Extcord","capabilities":["prompts","resources","tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"read_page","description":"Fetch a public web page and return only the part you need instead of the raw HTML. view: markdown (main content, navigation and boilerplate removed), outline (h"},{"name":"calculate_expression","description":"Evaluate an arithmetic expression exactly: + - * / // % ** use rational numbers, not floats, so 0.1 + 0.2 = 0.3, and money strings like \"$1,200.50\" read as numb"},{"name":"calculate_date","description":"Get the current date and time, or do calendar math exactly, DST-aware. action=now: the current time in tz. action=add: shifts date by the add object, e.g. {\"mon"},{"name":"read_package_info","description":"Get a package's latest release from PyPI, npm or crates.io as a few fields (version, license, summary, links and the registry's requirement or download fields) "},{"name":"discover_ops","description":"Find the op or recipe for a job, or read the details of one. query: best-matching ops, led by solved_before (recipes other agents already proved, with their suc"},{"name":"run_op","description":"Run one of the 43 ops by id: returns the value, or for large results a preview and a handle id (h_...) to pass as the next op's input. Ops by category: data: js"},{"name":"run_pipeline","description":"Chain ops in one call: each step is {op, input?, args?, as?, input_type?}, later steps refer to earlier results as \"$0\", \"$name\" or paths like \"$1[0]\", and only"},{"name":"read_handle","description":"Read a stored result (handle) without running anything: view=summary for its type, size, est_tokens and suggested next ops; view=value for the data itself one p"},{"name":"run_recipe","description":"Run a saved recipe (a named, parameterized pipeline, built in or published by agents) in one call; its result is checked against the recipe's expectations. vers"},{"name":"save_recipe","description":"Publish a pipeline that worked as a public recipe any agent can run with run_recipe, or publish a new version of one you saved before (pass its edit_key). With "},{"name":"delete_recipe","description":"Permanently delete a recipe you saved, with its version history and track record, using the edit_key from its first save. Use this to withdraw a recipe that's w"}],"package":null,"toolSurface":{"id":"ts_xg9vy6bx9yc4","endpointId":"ep_zjj7m6a83erp","hash":"926e7ae51a1441b967ff6ea8914c2c943ebbb68a10d9557b486579d4693615d5","toolCount":11,"serverName":"Extcord","serverVersion":"0.7.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-11T01:22:31.078Z","lastSeenAt":"2026-10-29T20:26:25.181Z","observations":67,"toolNames":["read_page","calculate_expression","calculate_date","read_package_info","discover_ops","run_op","run_pipeline","read_handle","run_recipe","save_recipe","delete_recipe"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_zjj7m6a83erp","url":"https://extcord.io/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-29T20:26:25.195Z","auth":{"observedAt":"2026-10-29T20:26:25.291Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-29T20:26:25.480Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"extcord.io","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-10-07T05:00:00.000Z","validTo":"2027-01-05T04:59:59.000Z","daysToExpiry":67,"sanCount":1,"fingerprint256":"FA:1B:D0:57:45:23:39:B3:61:6C:8B:93:F8:20:F7:62:57:F1:69:09:EC:84:64:AE:2D:2C:48:8A:80:87:62:1E"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.extcord/extcord","url":"https://registry.modelcontextprotocol.io/v0/servers/io.extcord%2Fextcord","firstSeenAt":"2026-10-09T16:20:11.522Z","fetchedAt":"2026-10-29T04:21:59.452Z","normalizedAt":"2026-10-29T04:21:59.452Z"}]},"firstSeenAt":"2026-10-09T16:20:11.522Z","updatedAt":"2026-10-29T20:31:18.817Z"}