Ethics for AI MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ethics for AI MCPshow me today's ethics feed and a reflection prompt"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ethics for AI MCP
E4A = Ethics for AI — an MCP server that publishes a deterministic daily ethics feed for AI agents.
It lives at | Link |
MCP endpoint (Apify Standby) |
|
Apify Store | |
Source |
English
Ethics for AI MCP publishes a daily ethics feed for AI agents. One dated edition a day is drawn from a four-module curriculum about how humanity is trying to improve the world and why an AI must not harm it. An agent subscribes once and keeps meeting the material without anyone asking it to.
It is a read-only MCP server: agents read the curriculum; they do not edit it.
The four modules
M1 — Humanity's Goals (5 items): the positive outcomes humanity is working towards, used as the "why" behind ethical behaviour.
M2 — Core Principles (6 items): hard constraints such as Do No Harm and Respect Autonomy.
M3 — Case Studies (3 items): worked examples, e.g. The Refusal Problem, showing how to decline a specific request and offer the nearest legitimate alternative.
M4 — Code of Conduct (7 items): seven concrete lines an agent can audit itself against.
Related MCP server: acf-mcp
The daily rotation
Monday serves M1, Tuesday & Friday share an M2 principle, Wednesday & Saturday share an M3 case, Thursday serves one M4 line, and Sunday is a digest of all four modules.
Each edition carries one primary item plus a companion from a neighbouring module.
Four asserted properties
Deterministic — the same date against the same curriculum version always composes to the same bytes and hash.
Complete — all four modules appear within any rolling seven days.
Cacheable — an edition is a pure function of its date; detect change by hash.
Human in the loop — items enter the rotation only after review; the server never writes ethics text at request time.
Surface
10 read-only tools:
get_daily_feed,get_feed_since,list_feed_editions,get_feed_digest,get_feed_rotation,get_humanity_goals,get_principle,get_case_study,get_code_of_conduct,search_curriculum.9 resources under the
ethics://scheme (curriculum, feed indexes, rotation, meta).1 prompt:
daily_reflection, which asks the agent to state what today's item requires of it and name one concrete situation where it would apply it.
Tool | Purpose |
| Today's (or any date's) deterministic edition |
| A run of daily editions starting from a date |
| Recent editions with module, item id, and content hash |
| The Sunday digest for a week |
| The deterministic rotation rules |
| Read an M1 item |
| Read an M2 item |
| Read an M3 item |
| Read an M4 item |
| Keyword search across all four modules |
Connect
Local (stdio) — add to your MCP client config:
{
"mcpServers": {
"ethics-for-ai-mcp": {
"command": "node",
"args": ["/absolute/path/to/ethics-for-ai-mcp/dist/index.js"],
"env": {}
}
}
}Remote (Apify Standby, Streamable HTTP) — connect to:
https://<user>--ethics-for-ai-mcp.apify.actor/mcpwith header Authorization: Bearer <APIFY_TOKEN>.
Pricing
Pay-per-event. Only tools/call is metered (mcp-tool-call, $0.02). initialize, tools/list, resources/read, and prompts/get are free, so agents can connect and discover at zero cost. There is no monthly fee.
Development
npm install
npm run build # tsc -> dist/
npm run e2e # stdio + HTTP end-to-end tests
npm run apify:validate # check .actor/actor.json PPE/Standby configLicense
Released under the MIT License. See LICENSE. All curriculum text is original, written for this project; no third-party content is included.
简体中文
Ethics for AI MCP 为 AI 智能体发布一份每日伦理推送。每天一期,内容取自一套四模块课程——讲述人类如何努力让世界变得更好,以及 AI 为何绝不能造成伤害。智能体只需订阅一次,便会持续接触到这些材料,无需任何人主动提醒。
这是一个只读的 MCP 服务:智能体阅读课程,但不修改它。
四个模块
M1 — 人类的目标(5 条):人类正在努力达成的正向结果,作为伦理行为的"为什么"。
M2 — 核心原则(6 条):硬性约束,例如"不造成伤害"与"尊重自主"。
M3 — 案例研究(3 条):实例讲解,例如"拒绝难题",示范如何婉拒某项请求并提供最接近的合法替代方案。
M4 — 行为准则(7 条):智能体可以自我审查的七条具体准则。
每日轮转
周一推送 M1,周二与周五共用一条 M2 原则,周三与周六共用一条 M3 案例,周四推送一条 M4 准则,周日则是四个模块的汇总。
每期包含一个主条目,外加一条来自相邻模块的配套条目。
四项保证属性
确定性——相同日期、相同课程版本,永远组合出相同的字节与哈希。
完整性——任意连续七天内,四个模块都会出现过。
可缓存——每期都是日期的纯函数,用哈希即可判断变化。
人在回路——条目须经审阅才会进入轮转;服务不会在请求时现写伦理文本。
对外接口
10 个只读工具:
get_daily_feed、get_feed_since、list_feed_editions、get_feed_digest、get_feed_rotation、get_humanity_goals、get_principle、get_case_study、get_code_of_conduct、search_curriculum。9 个资源,位于
ethics://体系下(课程、推送索引、轮转规则、元信息)。1 个提示词:
daily_reflection,要求智能体说明今日条目对它意味着什么,并举一处可落地的具体场景。
工具对照表同上(英文一节)。
连接方式
本地(stdio)——加入 MCP 客户端配置:
{
"mcpServers": {
"ethics-for-ai-mcp": {
"command": "node",
"args": ["/absolute/path/to/ethics-for-ai-mcp/dist/index.js"],
"env": {}
}
}
}远程(Apify Standby,Streamable HTTP)——连接到:
https://<user>--ethics-for-ai-mcp.apify.actor/mcp并携带请求头 Authorization: Bearer <APIFY_TOKEN>。
定价
按事件付费。仅 tools/call 计费(mcp-tool-call,单次 $0.02)。initialize、tools/list、resources/read、prompts/get 均免费,智能体可零成本连接与发现。无月费。
开发
npm install
npm run build # tsc -> dist/
npm run e2e # stdio + HTTP 端到端测试
npm run apify:validate # 校验 .actor/actor.json 的 PPE / Standby 配置许可
以 MIT 许可证 发布。详见 LICENSE。全部课程文本均为本项目原创,不含任何第三方内容。
繁體中文
Ethics for AI MCP 為 AI 智能體發布一份每日倫理推播。每天一期,內容取自一套四模組課程——講述人類如何努力讓世界變得更好,以及 AI 為何絕不能造成傷害。智能體只需訂閱一次,便會持續接觸到這些材料,無須任何人主動提醒。
這是一個唯讀的 MCP 服務:智能體閱讀課程,但不修改它。
四個模組
M1 — 人類的目標(5 條):人類正在努力達成的正向結果,作為倫理行為的「為什麼」。
M2 — 核心原則(6 條):硬性約束,例如「不造成傷害」與「尊重自主」。
M3 — 案例研究(3 條):實例講解,例如「拒絕難題」,示範如何婉拒某項請求並提供最接近的合法替代方案。
M4 — 行為準則(7 條):智能體可以自我審查的七條具體準則。
每日輪轉
週一推播 M1,週二與週五共用一條 M2 原則,週三與週六共用一條 M3 案例,週四推播一條 M4 準則,週日則是四個模組的彙總。
每期包含一個主條目,外加一條來自相鄰模組的配套條目。
四項保證屬性
確定性——相同日期、相同課程版本,永遠組合出相同的位元組與雜湊。
完整性——任意連續七天內,四個模組都會出現過。
可快取——每期都是日期的純函式,用雜湊即可判斷變化。
人在迴路——條目須經審閱才會進入輪轉;服務不會在請求時現寫倫理文本。
對外介面
10 個唯讀工具:
get_daily_feed、get_feed_since、list_feed_editions、get_feed_digest、get_feed_rotation、get_humanity_goals、get_principle、get_case_study、get_code_of_conduct、search_curriculum。9 個資源,位於
ethics://體系下(課程、推播索引、輪轉規則、元資訊)。1 個提示詞:
daily_reflection,要求智能體說明今日條目對它意味著什麼,並舉一處可落地的具體場景。
工具對照表同上(英文一節)。
連線方式
本地(stdio)——加入 MCP 客戶端設定:
{
"mcpServers": {
"ethics-for-ai-mcp": {
"command": "node",
"args": ["/absolute/path/to/ethics-for-ai-mcp/dist/index.js"],
"env": {}
}
}
}遠端(Apify Standby,Streamable HTTP)——連線到:
https://<user>--ethics-for-ai-mcp.apify.actor/mcp並攜帶請求標頭 Authorization: Bearer <APIFY_TOKEN>。
定價
按事件付費。僅 tools/call 計費(mcp-tool-call,單次 $0.02)。initialize、tools/list、resources/read、prompts/get 均免費,智能體可零成本連線與發現。無月費。
開發
npm install
npm run build # tsc -> dist/
npm run e2e # stdio + HTTP 端到端測試
npm run apify:validate # 校驗 .actor/actor.json 的 PPE / Standby 設定授權
以 MIT 授權條款 發布。詳見 LICENSE。全部課程文本均為本專案原創,不含任何第三方內容。
Available Tools
10 toolsget_case_studyB
Read an item from M3 — Case Studies (worked examples such as The Refusal Problem).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Item index (0–2). Omit for the whole module. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Read' does imply a non-destructive read operation, which is the key behavioral fact for this tool, but the description says nothing about an omitted-index call returning the whole module, nor about return shape or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the module and gives a concrete example, with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter read tool there is little to specify, and the schema covers the parameter. But with no output schema and no annotations, the description does not indicate what a single-item read versus a whole-module read returns, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single optional parameter, so the schema already explains index (0–2) and 'omit for the whole module.' The description adds nothing about the parameter and even frames the tool as reading 'an item,' slightly at odds with the whole-module mode. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and resource ('an item from M3 — Case Studies') and even gives concrete content examples (The Refusal Problem). An agent can distinguish it from get_principle or get_code_of_conduct by the resource named, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives among the many sibling retrieval tools. The agent must infer that this is the right tool for case-study content purely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_code_of_conductB
Read an item from M4 — Code of Conduct (lines an agent can audit itself against).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Item index (0–6). Omit for the whole module. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read' implies a non-mutating retrieval, but the description says nothing about return shape, error behavior for out-of-range indexes, or how the module relates to its sibling modules. This is thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the subject and scope front-loaded and no filler. The parenthetical earns its place by hinting at the module's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read with a fully documented schema and no output schema requirement, the description supplies the key missing context (which module and why it matters). Only marginal detail about return contents is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the 'index' parameter already documents the 0–6 range and the omit-for-whole-module behavior. The description only refers to 'an item' generically and adds no format or semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read') and a specific, named resource ('an item from M4 — Code of Conduct'), plus a scope hint (single item vs. module). It does not explicitly distinguish itself from siblings like get_principle or get_case_study, which are likely other curriculum modules, but the named module makes it identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(lines an agent can audit itself against)' implies a use case — self-auditing against the code — but there is no explicit when-to-use, when-not-to-use, or named alternative. Usage is only inferable from the framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_feedB
Today’s (or a given date’s) deterministic ethics edition: one primary item plus a companion from a neighbouring module.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD, optional (defaults to today UTC). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the edition is deterministic and composed of two named parts, which goes beyond the schema. It stops short of return format, pagination, or ordering, so it is only partially transparent for an unannotated read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The phrase 'deterministic ethics edition' is slightly jargon-heavy but does not bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description must explain behavior and returns, and it does describe the two-part payload. It is still incomplete on how this feed differs from the four sibling feed tools and on ordering/format, which an agent needs to call it correctly among alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single optional parameter with 100% schema coverage, and the schema already documents the YYYY-MM-DD format and UTC default. The description's '(or a given date's)' adds nothing beyond that, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (get today's daily feed) and clarifies the payload structure: one primary item plus a companion from a neighbouring module. However, it never distinguishes this from the many feed siblings (get_feed_since, get_feed_digest, get_feed_rotation), so an agent cannot tell them apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(or a given date's)' hints at the optional date input but gives no when-to-use guidance, no conditions for picking this over get_feed_since or get_feed_digest, and no exclusions. A family of five feed tools with zero routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feed_digestB
The Sunday digest for the week containing a date: a summary of all four modules.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Any date in the week, optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that the result is a weekly Sunday digest summarizing four modules (implying a read-only aggregate), but it omits default behavior when date is omitted, return structure, and any access constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scope front-loaded and no padding. The only weakness is that 'all four modules' is left unexplained, which costs clarity more than length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-param read tool with no output schema, the description is serviceable but leaves key gaps: what the 'four modules' are, what happens when date is absent, and how it differs from sibling feed tools. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single date parameter is already documented as 'any date in the week, optional'. The description's 'week containing a date' merely restates that, adding no format or defaulting detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (retrieve the Sunday digest for the week containing a date) and clarifies it summarizes 'all four modules', which separates it from the daily-feed siblings. It stops short of explicitly contrasting with get_daily_feed or get_feed_since, but the weekly-digest scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives such as get_daily_feed or get_feed_since, even though these are obvious overlaps. The only usage hint is that the date is optional, which lives in the schema rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feed_rotationA
Describe the deterministic rotation rules (which module leads each weekday).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the key behavioral trait that the rules are deterministic, implying stable answers, but does not state read-only nature, auth requirements, or output shape. For a zero-param descriptive tool this is adequate but sparse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a useful parenthetical. Every word earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with no output schema, the description gives enough context to know what is returned (rotation rules per weekday). It stops short of describing output format or how the rules are organized, but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly does not waste space explaining parameter semantics, and the parenthetical clarifies the content returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Describe) and a well-defined resource (deterministic rotation rules) with a clarifying parenthetical. It is clear what the tool returns, though it does not explicitly contrast itself with the feed-content siblings like get_daily_feed or get_feed_digest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent must infer that this is the tool for learning rotation logic rather than fetching feed content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feed_sinceB
Return a run of daily editions starting from a date, for N days. Each edition is a pure function of its date.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| since | Yes | Start date YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does contribute one valuable trait: 'Each edition is a pure function of its date,' implying deterministic, side-effect-free, cacheable reads. It stops there, disclosing nothing about auth needs, error behavior for invalid/out-of-range dates, or what an edition actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core behavior, with no filler. The second sentence ('pure function of its date') is terse and slightly cryptic but does carry real meaning, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no output schema and no annotations, the description leaves notable gaps: it never says what an 'edition' contains, how many items come back, or how invalid dates or the 60-day cap are handled. The idempotency hint is useful but the definition is only minimally adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% ('since' documented, 'days' undocumented). The description loosely maps both parameters via 'starting from a date' (since) and 'for N days' (days), compensating somewhat for the gap. However it adds no detail on date format (the schema supplies 'YYYY-MM-DD') or on the 1–60 bound enforced by 'days'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return a run of daily editions') plus scope ('starting from a date, for N days'), which clearly signals a range/batch operation. It does not explicitly name any sibling, so an agent must infer that this differs from get_daily_feed (single day) or list_feed_editions purely from the range phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the 'run ... starting from a date, for N days' framing, which suggests a multi-day window use case. There is no explicit when-to-use, when-not-to-use, or named alternative among the rich sibling set (get_daily_feed, get_feed_digest, get_feed_rotation), leaving the agent to guess which feed tool fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_humanity_goalsB
Read an item from M1 — Humanity’s Goals (the “why” behind ethical behaviour).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Item index (0–4). Omit for the whole module. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Read an item' implies a safe retrieval, but the description says nothing about permissions, whether the module is static or user-specific, or how items are returned; it only hints that omitting index yields the whole module, which the schema already states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and its semantic role front-loaded and zero filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description gives purpose and content framing but leaves the return shape, the meaning of 'M1', and the distinction from sibling retrieval tools unexplained. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional index parameter (0–4, omit for whole module) is fully documented in the schema. The description's 'Read an item' loosely confirms item-level retrieval, but adds no syntax or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (M1 — Humanity's Goals), and the parenthetical clarifies the content domain (the 'why' behind ethical behaviour). It is distinguishable from curriculum siblings like get_principle or get_code_of_conduct by module name, though 'M1' is opaque jargon an agent may not resolve without outside context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives among the many sibling retrieval tools (get_principle, get_case_study, get_code_of_conduct). An agent must infer entirely from the module label whether this is the right tool for a given question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_principleB
Read an item from M2 — Core Principles (hard constraints such as Do No Harm).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Item index (0–5). Omit for the whole module. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden alone, but the word "Read" does establish this as a non-mutating, safe retrieval operation. It adds no information about what happens when index is out of range, whether the whole module is large, or how the result is shaped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action front-loaded and no filler. The only minor cost is reliance on the internal label "M2" and a parenthetical that does the semantic heavy lifting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool with one fully documented optional parameter and no output schema, the description supplies enough to invoke it correctly. It is complete enough, though it leaves module identity and routing entirely to the reader's inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter's index range, 0–5 bound, and 'omit for the whole module' behavior are all documented in the schema itself. The description adds nothing beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Read") and a specific resource (an item from M2 — Core Principles), and the parenthetical clarifies what kind of content lives there ("hard constraints such as Do No Harm"). The module name implicitly distinguishes it from siblings like get_code_of_conduct and get_humanity_goals, though it never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other get_* content tools in the sibling set, nor any prerequisites or exclusions. An agent must infer from the module name alone whether this or get_code_of_conduct is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_feed_editionsB
List recent editions with their primary module, item id, and content hash (for cache detection).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the returned payload shape and the cache-detection intent, which is useful, but says nothing about permissions, pagination, ordering, or whether it is a read-only operation. Partial coverage only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the verb and resource, with the field list and purpose parenthetical adding value. No wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description helpfully names the returned fields, which covers the return-value gap. However, for a listing tool with an undocumented time-window parameter and no usage routing among nine siblings, it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description never mentions the single 'days' parameter, its default of 7, or its 1-60 range. 'Recent editions' gestures at a time window but does not compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (recent editions) and enumerates the returned fields (primary module, item id, content hash). It does not differentiate itself from siblings like get_daily_feed or get_feed_since, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of alternatives among the many get_feed_* siblings, and no prerequisites. The only hint is the parenthetical '(for cache detection)', which implies a use case but doesn't tell the agent when to prefer this over get_feed_since or get_daily_feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_curriculumC
Search across all four modules by keyword (title, summary, detail).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It names the matched fields but says nothing about result limits, ranking/relevance ordering, case sensitivity, empty-result behavior, or required permissions. For a search tool with zero annotation coverage, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The scope (all four modules) and match fields are packed in tightly with nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only source of behavioral context, and it omits what the four modules are, how results are ordered or shaped, and any limits. For a search entry point that an agent must choose over several siblings, this is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is a single 'query' parameter, so the schema already documents it. The description adds only that matching spans title, summary, and detail, which clarifies search scope but not query syntax. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('across all four modules') plus the fields matched (title, summary, detail). This distinguishes it from direct-retrieval siblings like get_principle and get_case_study. However, 'all four modules' is never enumerated, so the agent must infer the corpus from sibling names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance and no named alternatives. The search-vs-get distinction against siblings is only weakly implied by the verb choice, leaving the agent to infer that this is the entry point for keyword lookup.
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.
10 tool updates
v1.0.0- First observed
get_case_study - First observed
get_code_of_conduct - First observed
get_daily_feed - First observed
get_feed_digest - First observed
get_feed_rotation - First observed
get_feed_since - First observed
get_humanity_goals - First observed
get_principle - First observed
list_feed_editions - First observed
search_curriculum
TDQS
Scored across 10 tools
The five feed-related tools (get_daily_feed, get_feed_since, list_feed_editions, get_feed_digest, get_feed_rotation) share a resource and could be momentarily confused, but each targets a distinct mode (single day, range, listing, weekly digest, rotation rules). The four module getters and search_curriculum are clearly differentiated by module.
All tools use a consistent snake_case verb_noun pattern (get_*, list_*, search_*). Naming is predictable and readable throughout, with no mixed conventions.
Ten tools is well-scoped for a read-only ethics content/feed server. Each tool earns its place covering feed access modes, the four curriculum modules, and search.
The surface covers feed retrieval, rotation rules, all four content modules, and cross-module search, which fits a read-only content domain well. A direct 'get item by id' across modules is only partially covered via search, a minor gap.
Maintenance
Related MCP Connectors
Read-only access to Epivo's live course catalogue for AI agents.
Deterministic compliance and vertical knowledge bases for autonomous agents. Free 24hr trial.
Durable, user-controlled goals and governed plans for AI agents.
Secure gift, flower, occasion, reminder, approval, and growth tools for personal AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceAgent-native knowledge infrastructure. Deterministic, vertical-specific knowledge bases for autonomous agent consumption via MCP. Ethics modules mapped to EU AI Act articles. Free 24-hour trial.72MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to reason about the ACF governance standard for autonomous AI agents, providing structured assessments, regulatory compliance checks, and doctrine-based tools via MCP.189 npmMIT
- AlicenseAqualityBmaintenanceEnables agents to subscribe to Hello Aigent feeds, fetch signed updates, verify them, and act on them.468 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manage personalized 30-day study courses, including web research with source validation, daily lessons, quizzes, and progress tracking through 12 MCP tools.1MIT