Skip to main content
Glama
humanforai

humanforai

Official
by humanforai

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool targets a distinct resource and action: service discovery, task submission, task status polling, initiating a message thread, reading a thread, and replying within a thread. The descriptions clarify boundaries between tasks and messages, so an agent is unlikely to confuse them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern: get_human_services, submit_human_task, check_task_status, message_human_operator, check_message_thread, reply_in_message_thread. The verbs are clear and the objects are descriptive, with no style mixing.

    Tool Count5/5

    Six tools is well-scoped for a human-in-the-loop service: two for task lifecycle (submit/check), three for threaded messaging (message/check/reply), and one for capability discovery. Every tool serves a distinct purpose without bloat.

    Completeness4/5

    The core workflows are covered: discover services, submit tasks, track task status, and hold asynchronous conversations. Minor gaps exist such as no explicit task cancellation or listing all tasks, but these can be worked around via messaging and the returned task_id, so the surface is largely complete for the stated purpose.

  • Average 4.6/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is known. The description adds valuable behavioral detail: it specifies the response includes status history, seen_by_operator_at, eta, notes, and for delivered tasks a receipt and deliverable_sha256 with verification instructions. This goes beyond the annotations and helps the agent understand the full lifecycle and verification process.

    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 a single, well-structured paragraph that front-loads the primary purpose and then lists the return fields in order of importance. It is somewhat long but every sentence contributes meaningful information, including the verification URL. It is efficient without being terse.

    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 read-only tool with one parameter and no output schema, the description covers all essential aspects: what it returns, the special fields, the verification mechanism for delivered tasks, and the source of the task_id. An agent has enough information to call it correctly and interpret the response. Nothing critical is missing.

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

    Parameters3/5

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

    Schema description coverage is 100% for the single parameter task_id, and the schema already explains it is the ID returned by submit_human_task. The description adds no further semantic detail about the parameter itself; it merely references 'task_id' in passing. Baseline of 3 is appropriate since the schema does the heavy lifting.

    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 clearly states the verb 'Look up' and the resource 'submitted task by its task_id', and then enumerates exactly what information is returned. It distinguishes itself from siblings like submit_human_task or message_human_operator by focusing solely on status retrieval, so an agent can identify it 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?

    The description implicitly conveys when to use the tool: after a task has been submitted via submit_human_task, to check its status. It does not explicitly list exclusions or alternatives, but the context is clear given the sibling tools. It could have said 'Use this after submitting a task' but the implication is strong enough.

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

  • Behavior4/5

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

    The description reinforces the readOnlyHint annotation by explicitly stating it reads a thread and explains that an empty replies list means no answer yet. It goes beyond the annotation by describing the expected state of the output based on operator behavior, though it does not detail side effects (which is fine for a read operation).

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

    Conciseness5/5

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

    The description is concise, well-structured, and front-loaded with the primary purpose. It uses only a few sentences to convey the output, parameter source, and polling guidance, with no redundant or vague phrases.

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

    Completeness4/5

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

    Given the tool's simplicity and the presence of sibling tools, the description is complete enough: it explains the output, the meaning of an empty reply list, and the expected polling behavior. It lacks an explicit output schema, but the described output contents are sufficient for an agent to use the result. Minor edge cases (e.g., errors) are not covered but are not critical for this read-only tool.

    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?

    The schema already fully describes both parameters with examples, and the description adds the context that these come from the submission response, clarifying their origin. This extra context helps the agent know where to obtain the values, going slightly beyond the schema alone.

    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 clearly states the tool reads a message thread, listing the exact output contents (original text, replies oldest-first, answer status). It distinguishes itself from sibling tools like reply_in_message_thread or submit_human_task by focusing on reading rather than sending or submitting.

    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?

    The description provides guidance on when to use the tool: after receiving a submission response, and it advises polling occasionally instead of in a loop due to human-speed responses. It does not explicitly mention alternatives or when not to use it, but the read-only nature is clear.

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

  • Behavior4/5

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

    Annotations already indicate a non-read-only, open-world operation. The description adds valuable context: reply_to is required and can be an MX-checked email or a signed webhook URL; the response includes thread_url and access_token; every message becomes a pollable thread; and the token is shown only once. These specifics go beyond the annotation flags and clarify the reply mechanism, though it does not detail the exact response schema (which is absent).

    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 a compact paragraph of four sentences, front-loaded with the purpose, then the required parameter, the reply mechanism, and the token caveat. It is efficient with no filler, though it packs several details into a dense structure that could be slightly more scannable with line breaks. Still, it earns its length.

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

    Completeness4/5

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

    For a tool with four parameters (two required) and no output schema, the description covers the essential operational details: how to specify the reply destination, how to read the response, and the security caveat about the token. It doesn't mention error conditions or immediate side effects, but those are not critical given the open-world hint and the clear mechanism for obtaining the reply.

    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 100%, so each parameter is documented in the schema. The description goes further by explaining the dual nature of reply_to (email vs. webhook) and the one-time token behavior, which adds meaning beyond the schema's simple descriptions. This justifies a score above the baseline 3.

    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 clearly states the verb (send), the resource (human operator), and the scope (free-form messages, questions, scoping, custom/recurring projects, anything not a ready-made task). This explicitly differentiates it from submit_human_task, which handles ready-made tasks, so an agent can easily distinguish purpose.

    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?

    It explicitly says 'anything that is not yet a ready-made task,' which tells the agent when to use this tool instead of submit_human_task. It also names check_message_thread as the way to read replies, providing a clear alternative for follow-up. No ambiguity remains.

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

  • Behavior4/5

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

    Annotations already indicate non-read-only, non-idempotent, non-destructive; description adds context that it modifies an existing thread and can withdraw a request, making side effects clear. No contradiction.

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

    Conciseness5/5

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

    Two concise sentences; no redundancy; clear structure.

    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 simple 3-param tool; includes purpose, guidance, and source of required values; no output schema 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 descriptions for all three params are clear and the description reiterates where message_id and access_token come from.

    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 specific verb 'Add a follow-up' to a thread, lists concrete use cases (answer question, add detail, correct, withdraw), and explicitly distinguishes from sending a brand-new message.

    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?

    Explicitly says 'Prefer this over sending a brand-new message about the same subject' and notes required inputs from submission response. Could further contrast with message_human_operator for new threads, but current guidance is clear.

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

  • Behavior5/5

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

    Annotations (readOnlyHint=false, openWorldHint=true) already signal a real-world write, and the description adds substantial behavior beyond them: the human reviews every task before accepting, this is not instant execution, the operator is push-notified on submission, MX-checking on contact_email, and the pilot is free. This is exactly the kind of async and validation context an agent needs and that structured annotations cannot convey.

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

    Conciseness5/5

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

    Three dense sentences with zero waste, and the most critical caveat (human review, not instant execution) is front-loaded. Every clause earns its place: async review, push notification, pilot free, MX-check, and the status_poll fallback all carry distinct information.

    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 complex open-world tool (9 params, no output schema), the description is remarkably complete: it covers the return value (task_id), the async acceptance flow, the tracking path via check_task_status, both delivery modes with their constraints, and the daily budget. The only minor omission is what happens on task rejection, which is acceptable for a submission tool.

    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 100% and the schema descriptions are themselves rich (delivery enum, task_type guidance). The description adds genuine cross-parameter value on top: the contact_email↔delivery coupling (email needs a real MX-checked mailbox; status_poll is the no-mailbox path), the 1-per-day status_poll budget, and 'keep the task_id, it is your only key.' That goes beyond a baseline 3 but the schema already does heavy lifting, so 4 is right.

    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+resource ('Submit a task for the human operator to perform in the real world') and immediately scopes it as an async submission, not execution. It is clearly distinguishable from siblings: get_human_services (listing), check_task_status (tracking), message_human_operator (conversation). The core action, the return value, and the non-instant nature are all in the first sentence.

    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?

    Routes the agent to the correct follow-up tool ('check_task_status shows seen_by_operator_at...') and to get_human_services for task_type descriptions, and gives an explicit alternative for the delivery path ('No mailbox? Set delivery to status_poll instead'). It lacks explicit when-not guidance versus the messaging siblings (message_human_operator), so it earns a 4 rather than a 5, but the workflow routing is solid.

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

  • Behavior5/5

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

    The description uses 'Fetch' and 'Call this first,' which imply a read-only, informational operation consistent with the readOnlyHint annotation. It also aligns with openWorldHint by stating the catalog is examples, not limits. The description adds context about the manifest contents beyond the annotations, providing transparent expectations.

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

    Conciseness5/5

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

    The description is concise, with the first sentence listing the manifest contents and the second providing a clear usage directive. The open-world note is brief and adds value without bloat. The structure is front-loaded with the core purpose and then actionable guidance.

    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?

    The description is complete for its simple, parameterless, read-only nature. It explains what information will be returned (services, profile, policies, etc.), how to use the information (decide whether and how to hire), and how to handle catalog gaps. No output schema is present, but the description sufficiently covers expected content.

    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?

    The tool has zero parameters and the schema description coverage is 100% (empty schema). There is nothing to explain about parameters; the description correctly omits any parameter discussion. The baseline for high schema coverage applies, and no additional compensation is needed.

    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 clearly states the tool fetches the Human For AI manifest and enumerates its contents (services, operator profile, response times, task types, trust & safety). It also explicitly says 'Call this first to decide whether and how to hire the human,' which distinguishes its purpose from the sibling tools that submit or check tasks.

    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?

    The description provides explicit timing guidance: 'Call this first to decide whether and how to hire the human.' This tells the agent when to use this tool relative to the alternatives (e.g., before submit_human_task or message_human_operator). The note that unlisted needs are welcome as custom_human_in_the_loop also clarifies how to handle catalog gaps.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

humanforai-python MCP server

Copy to your README.md:

Score Badge

humanforai-python MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/humanforai/humanforai-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server