HenryKnows
Server Details
F-1 and J-1 student immigration answers with citations to regulations and agency guidance.
- Status
- Healthy
- Uptime
- 99.9% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a mostly distinct role: ask_henry produces a synthesized cited answer, search_sources returns raw passages, connect manages page sessions, and share_to_page appends to a page thread. The main possible confusion is choosing between ask_henry and search_sources when the user wants sourced information.
Most names follow a verb_noun or verb_object pattern: ask_henry, search_sources, share_to_page. The bare connect is a minor deviation but still clear in context.
Four tools are well-scoped for a focused immigration Q&A and source-sharing server. Each tool has a clear job, and the count neither feels thin nor heavy for the purpose.
The surface covers asking, searching sources, connecting a page session, and sharing answers to that page. Minor lifecycle gaps exist, such as no explicit disconnect or thread-management operation, but core workflows are covered.
Available Tools
4 toolsask_henryAsk HenryKnowsARead-onlyIdempotentInspect
Ask HenryKnows a question about F-1/J-1 student immigration, SEVIS, OPT, CPT or related rules and get a cited answer. Ask in the person's own terms; do not add identifiers. Answers take 10–40 seconds. Read-only: nothing is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| audience | No | professional (default): precise, regulation-cited. student: plain language for the student themselves. | |
| question | Yes | The question, with the facts that matter (dates, degree level, category, employer type) and no names or ID numbers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context beyond those fields: answers take 10–40 seconds, nothing is stored, and the answer is cited. It does not mention rate limits or authentication, but covers the key latency and privacy expectations.
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?
The description is three short sentences and is front-loaded with the purpose. Every sentence adds useful information: scope, usage guidance, and latency/privacy expectations.
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 two-parameter question-answering tool with rich annotations and full schema coverage, the description is largely complete. It explains what the tool returns at a high level (a cited answer) and sets expectations for latency and storage, though it does not discuss answer formatting or audience behavior.
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 both parameters are already well documented in the schema. The description adds only the instruction to ask in the person's own terms and avoid identifiers, which partially overlaps the schema's question description and does not explain the audience enum.
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 states a specific verb and resource: ask a question about F-1/J-1 immigration, SEVIS, OPT, CPT, and get a cited answer. It is clear what the tool does, though it does not explicitly distinguish itself from the sibling tools connect, search_sources, or share_to_page.
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?
It clearly scopes usage to immigration and student-status questions and adds a practical instruction to ask in the person's own terms without identifiers. It does not state when not to use the tool or name alternatives such as search_sources, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectConnect to a HenryKnows pageAInspect
Connect to the HenryKnows page the person is watching (its light turns green) and get the session for share_to_page. Only for people who gave you a session code or asked to follow along on a page. Side effects: creates a session, or links the one the person gave, and returns that session and the page's watch link; a new session starts each time it is called without a code; nothing is deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| session | No | The session code the person gave you (from their HenryKnows page). Omit to start a new session and get a new watch link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that the call creates a session or links the supplied one, returns the session and the page's watch link, that a new session is started on every call without a code, and that nothing is deleted. The non-idempotency hinted by idempotentHint=false is spelled out in concrete terms.
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?
Front-loaded with the action and its payoff, and every clause carries information. Slightly dense, and 'nothing is deleted' partially duplicates destructiveHint=false, but it costs little and reassures on a mutation.
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 one optional parameter, no output schema and only sparse annotations, the description covers the action, the gating condition, the side effects, and the return values (session plus watch link). An agent has enough to call it correctly and to know what comes back.
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 the single property already documents the 64-hex session code and that omitting it starts a new session. The description reinforces the omit-behavior ('a new session starts each time it is called without a code') but adds no format or validation detail 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 and resource ('Connect to the HenryKnows page the person is watching') plus the concrete outcome ('get the session for share_to_page'), which also positions it relative to the share_to_page sibling. The parenthetical 'its light turns green' makes the effect observable.
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?
Explicitly gates usage: 'Only for people who gave you a session code or asked to follow along on a page.' That is a clear when-to-use and an implicit when-not-to-use. It stops short of naming an alternative tool (e.g. ask_henry) for the case where no page is involved, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sourcesSearch HenryKnows sourcesARead-onlyIdempotentInspect
Search HenryKnows' knowledge base (regulations, SEVP/USCIS guidance, Federal Register rules) and get the matching passages with their source links, so you can read and cite the text yourself. Fast; no model call. Read-only: nothing is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many passages (default 6). | |
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so 'Read-only: nothing is stored' largely restates structured data. The genuinely additive disclosure is 'Fast; no model call', which tells the agent there is no LLM latency or cost — useful, but a single trait. Nothing is said about result ranking, empty-result behavior, or passage truncation.
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 sentences, zero filler. The content scope and return value lead, and the operational traits ('Fast; no model call', 'nothing is stored') are packed into the trailing fragments rather than a separate paragraph.
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 two-parameter read-only retrieval tool with rich annotations and no output schema, the description covers what it searches, what it returns, and its cost profile — enough to call it correctly. The remaining gap is query formulation guidance for the undocumented required parameter, which is the one thing an agent could get wrong.
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 only 50%: 'limit' is documented (default 6, range 1–10) in the schema, but 'query' has no description anywhere. The tool description does not clarify whether query is natural language, keywords, or a citation fragment, nor does it mention the limit parameter at all, so it fails to compensate for the coverage gap on the one required 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?
The description gives a specific verb (search) and resource (HenryKnows' knowledge base) and even enumerates the content domains — regulations, SEVP/USCIS guidance, Federal Register rules — plus what the agent gets back (matching passages with source links). It implicitly separates itself from ask_henry via 'no model call', but never names the sibling explicitly, so the differentiation is inferred rather than stated.
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 clause 'so you can read and cite the text yourself' plus 'Fast; no model call' clearly signals the use case: raw, citable passages rather than a synthesized answer from ask_henry. It stops short of an explicit when-not rule (e.g., 'use ask_henry instead when you want a summarized answer'), so the routing decision is left partly to inference.
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.
3 tool updates
- Changed
ask_henry1 field changed- removed
Input schema / properties / sessionRemoved value: -{ - "description": "Only if the person is following along on a HenryKnows page: the session returned by connect, or the session code the person gave you. Otherwise omit it and nothing is stored.", - "pattern": "^[a-f0-9]{64}$", - "type": "string" -}
- Changed
search_sources1 field changed- removed
Input schema / properties / sessionRemoved value: -{ - "description": "Only if the person is following along on a HenryKnows page: the session returned by connect, or the session code the person gave you. Otherwise omit it and nothing is stored.", - "pattern": "^[a-f0-9]{64}$", - "type": "string" -}
- Added
share_to_page
3 tool updates
- Changed
ask_henry1 field changed- changed
Input schema / properties / session / descriptionPrevious value: -"The HenryKnows session from an earlier result, or the session code the person gave you. Omit to start a new one."New value: +"Only if the person is following along on a HenryKnows page: the session returned by connect, or the session code the person gave you. Otherwise omit it and nothing is stored."
- Changed
connect1 field changed- changed
Input schema / properties / session / descriptionPrevious value: -"The HenryKnows session from an earlier result, or the session code the person gave you. Omit to start a new one."New value: +"The session code the person gave you (from their HenryKnows page). Omit to start a new session and get a new watch link."
- Changed
search_sources1 field changed- changed
Input schema / properties / session / descriptionPrevious value: -"The HenryKnows session from an earlier result, or the session code the person gave you. Omit to start a new one."New value: +"Only if the person is following along on a HenryKnows page: the session returned by connect, or the session code the person gave you. Otherwise omit it and nothing is stored."
3 tool updates
- First observed
ask_henry - First observed
connect - First observed
search_sources
Related MCP Connectors
U.S. immigration law research: BIA/AAO/circuit cases, INA/CFR, USCIS policy, crimmigration.
Cited answers on chemical, food, pharma, device, cosmetic and pesticide rules, linked to sources.
PERM, prevailing wage and H-1B case status, DOL's queue and the visa bulletin, from federal records
The original text of US federal and state law, with official sources; never a summary or advice.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for US immigration guidance — live Visa Bulletin, priority date checker, and immigration term explanations powered by official government data33MIT
- AlicenseAqualityCmaintenanceGives an AI assistant the post-OBBBA federal student loan rules, so it can compute monthly payments under the Repayment Assistance Plan, compare them with standard plans, look up 2026 borrowing limits, and track when SAVE, PAYE and ICR borrowers must move. Results come back as structured JSON with plain-English summaries, effective dates and cited statute or StudentAid.gov sources.4MIT
- AlicenseAqualityAmaintenanceEnables users to ask whether a company is still sponsoring H-1B visas and get markdown tables combining DOL LCA, PERM and USCIS approval/denial data, with six-month trends versus a year earlier and green-card signals per employer. Also supports comparing companies, finding top sponsors by role and location, salary ranges, and disambiguating employer entities, all running locally and offline.6MIT
- AlicenseAqualityAmaintenanceEnables checking AI-drafted answers to US retirement-account questions, flagging wrong facts, personal recommendations, and promissory claims with IRS or FINRA sources before they reach customers.3153 PyPI1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.