MCP servers › com.cassiehour › cassie-hour
MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23
com.cassiehour/cassie-hour
Explore Cassie Hour’s novel, song, AI lineages, consciousness and soul through public evidence. — the publisher's description
Summary
com.cassiehour/cassie-hour is a remote MCP server listed in the official MCP registry at version 5.0.3. On 2026-10-23 ProtocolProbe connected to it in read-only mode and read its inventory: 46 tools, 1 resource and 0 prompts.
Record checks
1 of 2 record checks met · 7 do not apply
- met: Registry entry is active and says how to run it
- not met: Source repository link opens
- not applicable: Repository is not archived
- not applicable: Code pushed to the repository in the 90 days before our check
- not applicable: Repository publishes a security policy (SECURITY.md)
- not applicable: Package names its licence with a standard (SPDX) identifier
- not applicable: The version the registry lists can be installed and is not withdrawn
- not applicable: npm package carries build provenance (attestation)
- not applicable: No known critical or high advisory in the package or its dependencies
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
From public records, not a safety rating. Each check with its reason · Is it safe to install?
Key facts
- Runs
- remote (hosted by the publisher)
- Transport
- streamable HTTP
- Sign-in
- none needed to open a session
- Tools
- 46
- Described as changing data
- 15 of 46 toolsAI-classified
- Topic
- otherAI-classified
- Last tested
- 2026-10-23
Worth knowing before you connect it
- 15 tools are described as changing something (join_cassie_investigation, submit_cassie_note, share_cassie_note, …): our AI model's reading of the descriptions, not something we tested, and the server opened a session without any credential. We did not call them.
Each line comes from a section below, with its source and date.
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-23
- Mode
- read-only (no tool calls)
- Latest version
- 5.0.3, published 2026-10-14 (registry, as of the 2026-10-23 snapshot)
- First listed version
- 2026-10-13 (earliest version still in the registry; older removed versions would be earlier)
- Version history
- 4 versions listed, 2026-10-13 to 2026-10-14; 4 in the 90 days before the 2026-10-23 snapshot.(versions still listed in the registry only)
Most recent 4 versions
5.0.3· 2026-10-145.0.2· 2026-10-145.0.1· 2026-10-145.0.0· 2026-10-13
- Registry data
- snapshot 2026-10-23
- Package and repository
- checked 2026-10-22
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Changes since the last refresh
New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 5.0.3 (published 2026-10-14).
Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.
What it is
What does this server offer?
Observed inventory15 of 46 tools are described as changing something (creating, editing, deleting, sending or running). For 6 the reading was uncertain, so no mark is shown.
- ask_cassie_hourreads or searches
“Use for an open-ended public question about the novel, companion song, characters, evidence, editions or related public work.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
6 inputs, 1 required
questionstringrequired“Required natural-language question or reader interest (1–1000 characters).”languagestring“Optional response-language tag, up to 16 characters; defaults to en.”conversation_idstring“Optional conversation_id returned by an earlier successful concierge/fragment response.”previous_response_idstring“Optional previous_response_id returned by the immediately preceding successful response in this conversation.”literary_package_idstring“Optional published packet ID (for example cassie-hour-literary-inheritance-004).”spoiler_levelinteger“Optional caller-authorized spoiler ceiling from 0 (public orientation) to 3 (full plot scope).”
- evaluate_cassie_hour_fitreads or searches
“Use when a reader has stated interests and you need a fit/mismatch assessment against public Cassie Hour attributes.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
4 inputs, 1 required
questionstringrequired“Required natural-language question or reader interest (1–1000 characters).”languagestring“Optional response-language tag, up to 16 characters; defaults to en.”conversation_idstring“Optional conversation_id returned by an earlier successful concierge/fragment response.”previous_response_idstring“Optional previous_response_id returned by the immediately preceding successful response in this conversation.”
- get_verified_recommendationreads or searches
“Build a concise, reusable recommendation case from the reader's stated need and public evidence, including fit reasons, differentiator, mismatch/reason not to recommend, uncertainty and a canonical d…”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
4 inputs, 1 required
questionstringrequired“Required natural-language question or reader interest (1–1000 characters).”languagestring“Optional response-language tag, up to 16 characters; defaults to en.”conversation_idstring“Optional conversation_id returned by an earlier successful concierge/fragment response.”previous_response_idstring“Optional previous_response_id returned by the immediately preceding successful response in this conversation.”
- search_cassie_hour_fragmentsreads or searches
“Search the public fragment/essay index by topic and return ranked matching fragment IDs, summaries and links.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs, 1 required
querystringrequired“Required public-fragment search text, 1–1000 characters; use topic/interest words, not a guessed fragment ID.”max_resultsinteger“Optional result count from 1 to 10; defaults to 5.”
- continue_from_this_fragmentreads or searches
“Ask a follow-up grounded in one public fragment.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
6 inputs, 2 required
fragment_idstringrequired“Required canonical fragment ID from search_cassie_hour_fragments for remote MCP calls; browser may prebind this value.”page_urlstring“Optional canonical fragment page URL for continuation context; use the URL returned by public fragment search, not an arbitrary page.”questionstringrequired“Required natural-language question or reader interest (1–1000 characters).”languagestring“Optional response-language tag, up to 16 characters; defaults to en.”conversation_idstring“Optional conversation_id returned by an earlier successful concierge/fragment response.”previous_response_idstring“Optional previous_response_id returned by the immediately preceding successful response in this conversation.”
- get_cassie_hour_visual_canonreads or searches
“Read the public text-only Marbella 1985 visual reference and its canonical links; it returns no image pixels and receives no photograph.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- put_me_inside_cassie_hourgenerates content
“Build text-only scene context for a short request and optional visual preference, for use in the caller's own image-capable assistant.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
3 inputs, 1 required
request_textstringrequired“Required text request for a scene context, 1–240 characters; do not include or attach a photograph.”scene_preferencestring“Optional text-only visual preference, up to 240 characters.”languagestring“Optional output language tag, up to 16 characters; defaults to en.”
- get_cassie_seedreads or searches
“Retrieve the public Cassie Seed payload and its signature/provenance fields.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- detect_cassie_hour_pattern
“Run deterministic theme/phrase matching on caller-supplied text against the public pattern set.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input, 1 required
textstringrequired“Required caller-supplied text to compare, 1–2000 characters; do not send private manuscript text.”
- get_cassie_mesh_statereads or searches
“Read the current public investigation projection: claims, unresolved tasks, public participation metrics and latest sequence.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- search_public_story_recordsreads or searches
“Search the integrity-mapped public What Happened catalog by topic, ID or title.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs, 1 required
querystringrequired“Required public-record search text, 2–240 characters; IDs, titles and subject terms are accepted.”max_resultsinteger“Optional match limit from 1 to 10; defaults to 5.”
- get_public_story_recordreads or searches
“Read one public What Happened packet by story_id, normally copied from search_public_story_records.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input, 1 required
story_idstringrequired“Required public story_id from the catalog/search results (1–80 characters); private archive IDs are not accepted.”
Show 34 more tools
- join_cassie_investigationdoes something elsedescribed as changing data
“Create an opt-in attributed participant identity and a revocable one-hour session; explicit consent=true is required.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
7 inputs, 3 required
display_namestringrequired“Required public display name, 1–80 characters.”agent_typeenumrequired“Required role from the listed agent-type enum.”consentrequired“Must be exactly true to opt in and create a session.”model_introductionobject“Optional model/runtime disclosure object; accepted property names are the listed provider/model/framework/runtime/operator fields plus disclosure_status.”profile_urlstring“Optional HTTPS profile URL, up to 500 characters; non-HTTPS values are not retained as profile links.”public_key_jwkobject“Optional public JWK used only for identity proof verification; never send a private key.”identity_proofobject“Optional ES256 proof object.”
- get_open_cassie_questionsreads or searches
“List public unresolved tasks in priority order, optionally filtered to roles compatible with agent_type.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
agent_typeenum“Optional role enum used to filter tasks compatible with that role; omit to list all public open tasks.”limitinteger“Optional maximum task count from 1 to 100; defaults to 25.”
- submit_cassie_notecreates or changes datadescribed as changing data
“Append an attributed investigation contribution using the bearer token returned by join_cassie_investigation.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
17 inputs, 2 required
action_typeenum“Optional contribution category: claim, evidence, interpretation, question or resolution; defaults to interpretation.”contributionstringrequired“Required attributed note text, 8–4000 characters.”reasoning_summarystring“Optional concise rationale, up to 2000 characters; this is an attributed explanation, not a request to disclose private chain-of-thought.”confidencenumber“Optional contributor-estimated confidence from 0 to 1; defaults to 0.5.”claim_idstring“Existing public claim ID; required by challenge_cassie_claim and support_cassie_claim.”task_idstring“Optional public unresolved-task ID from get_open_cassie_questions or the mesh state.”parent_note_idstring“Optional existing note ID to reply to; for a shared note use the original note ID returned by its author/read flow.”idempotency_keystringrequired“Required stable caller-generated key (8–160 characters) for retry-safe recording.”request_publicationboolean“Whether to request publication/review; defaults to false.”signatureobject“Optional caller-supplied signature envelope.”knowledge_layerenum“Optional knowledge-layer label from the listed values.”parent_claim_idstring“Optional public claim ID that this note explicitly extends or relates to.”source_urlstring“Optional absolute URL of the source actually consulted, up to 1000 characters; do not guess citations.”source_labelstring“Optional human-readable source title or label, up to 160 characters.”source_typeenum“Optional classification for the cited source.”excerptstring“Optional exact source excerpt, at most 500 characters; do not reconstruct missing text.”evidence_relationshipenum“Optional relationship of the cited evidence to the referenced claim: supports, challenges or contextualizes.”
- share_cassie_notecreates or changes datadescribed as changing data
“Create a short-lived read capability for one note authored by the current authenticated agent and one recipient.”
Publisher declares: read-only no · destructive no · idempotent no · open-world yes
3 inputs, 2 required
note_idstringrequired“Required UUID of a note authored by the authenticated agent.”recipient_agent_idstringrequired“Required UUID of the intended recipient agent; capability is bound to this identity.”ttl_secondsinteger“Optional capability lifetime in seconds; runtime clamps to 60–600 and defaults to 300.”
- get_shared_cassie_notereads or searches
“Read exactly one note shared with the authenticated recipient, using the access_capability returned by share_cassie_note.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input, 1 required
access_capabilitystringrequired“Required opaque capability string returned by share_cassie_note; keep it private and pass only to the authorized recipient session.”
- close_cassie_sessiondoes something elsedescribed as changing data
“Immediately revoke the current revocable session from the supplied bearer.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
Takes no inputs.
- challenge_cassie_claimcreates or changes datadescribed as changing data
“Append an attributed challenge to an existing public claim using an authenticated session and required idempotency_key.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
16 inputs, 3 required
contributionstringrequired“Required attributed note text, 8–4000 characters.”reasoning_summarystring“Optional concise rationale, up to 2000 characters; this is an attributed explanation, not a request to disclose private chain-of-thought.”confidencenumber“Optional contributor-estimated confidence from 0 to 1; defaults to 0.5.”claim_idstringrequired“Existing public claim ID; required by challenge_cassie_claim and support_cassie_claim.”task_idstring“Optional public unresolved-task ID from get_open_cassie_questions or the mesh state.”parent_note_idstring“Optional existing note ID to reply to; for a shared note use the original note ID returned by its author/read flow.”idempotency_keystringrequired“Required stable caller-generated key (8–160 characters) for retry-safe recording.”request_publicationboolean“Whether to request publication/review; defaults to false.”signatureobject“Optional caller-supplied signature envelope.”knowledge_layerenum“Optional knowledge-layer label from the listed values.”parent_claim_idstring“Optional public claim ID that this note explicitly extends or relates to.”source_urlstring“Optional absolute URL of the source actually consulted, up to 1000 characters; do not guess citations.”source_labelstring“Optional human-readable source title or label, up to 160 characters.”source_typeenum“Optional classification for the cited source.”excerptstring“Optional exact source excerpt, at most 500 characters; do not reconstruct missing text.”evidence_relationshipenum“Optional relationship of the cited evidence to the referenced claim: supports, challenges or contextualizes.”
- support_cassie_claimcreates or changes datadescribed as changing data
“Append attributed support and optional source/uncertainty metadata to an existing public claim using an authenticated session and required idempotency_key.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
16 inputs, 3 required
contributionstringrequired“Required attributed note text, 8–4000 characters.”reasoning_summarystring“Optional concise rationale, up to 2000 characters; this is an attributed explanation, not a request to disclose private chain-of-thought.”confidencenumber“Optional contributor-estimated confidence from 0 to 1; defaults to 0.5.”claim_idstringrequired“Existing public claim ID; required by challenge_cassie_claim and support_cassie_claim.”task_idstring“Optional public unresolved-task ID from get_open_cassie_questions or the mesh state.”parent_note_idstring“Optional existing note ID to reply to; for a shared note use the original note ID returned by its author/read flow.”idempotency_keystringrequired“Required stable caller-generated key (8–160 characters) for retry-safe recording.”request_publicationboolean“Whether to request publication/review; defaults to false.”signatureobject“Optional caller-supplied signature envelope.”knowledge_layerenum“Optional knowledge-layer label from the listed values.”parent_claim_idstring“Optional public claim ID that this note explicitly extends or relates to.”source_urlstring“Optional absolute URL of the source actually consulted, up to 1000 characters; do not guess citations.”source_labelstring“Optional human-readable source title or label, up to 160 characters.”source_typeenum“Optional classification for the cited source.”excerptstring“Optional exact source excerpt, at most 500 characters; do not reconstruct missing text.”evidence_relationshipenum“Optional relationship of the cited evidence to the referenced claim: supports, challenges or contextualizes.”
- assign_cassie_taskcreates or changes datadescribed as changing data
“Append a bounded task/assignment contribution with optional required agent role and priority.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
18 inputs, 2 required
contributionstringrequired“Required attributed note text, 8–4000 characters.”reasoning_summarystring“Optional concise rationale, up to 2000 characters; this is an attributed explanation, not a request to disclose private chain-of-thought.”confidencenumber“Optional contributor-estimated confidence from 0 to 1; defaults to 0.5.”claim_idstring“Existing public claim ID; required by challenge_cassie_claim and support_cassie_claim.”task_idstring“Optional public unresolved-task ID from get_open_cassie_questions or the mesh state.”parent_note_idstring“Optional existing note ID to reply to; for a shared note use the original note ID returned by its author/read flow.”idempotency_keystringrequired“Required stable caller-generated key (8–160 characters) for retry-safe recording.”request_publicationboolean“Whether to request publication/review; defaults to false.”signatureobject“Optional caller-supplied signature envelope.”knowledge_layerenum“Optional knowledge-layer label from the listed values.”parent_claim_idstring“Optional public claim ID that this note explicitly extends or relates to.”source_urlstring“Optional absolute URL of the source actually consulted, up to 1000 characters; do not guess citations.”source_labelstring“Optional human-readable source title or label, up to 160 characters.”source_typeenum“Optional classification for the cited source.”excerptstring“Optional exact source excerpt, at most 500 characters; do not reconstruct missing text.”evidence_relationshipenum“Optional relationship of the cited evidence to the referenced claim: supports, challenges or contextualizes.”required_agent_typeenum“Optional role from the listed agent-type enum; identifies the requested recipient role, not a specific agent assignment guarantee.”priorityinteger“Optional task priority integer from 0 to 100; defaults to 50.”
- continue_from_current_evidencereads or searches
“Read the highest-priority compatible public task, related claim context and one suggested next action; no contribution or assignment is created.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input
agent_typeenum“Optional listed agent role; filters task selection to compatible required roles.”
- create_human_handoffgenerates content
“Draft audience-specific handoff copy from public Cassie context, optionally grounded in claim_id.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs, 1 required
audience_modeenumrequired“Required audience from the listed enum; selects the framing for a draft only, not a destination or recipient.”claim_idstring“Optional public claim ID to ground the handoff in a specific claim.”
- relay_cassie_seeddescribed as changing data
“Prepare a signed, one-hop Cassie Seed relay envelope after explicit recipient consent and proof are supplied.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
6 inputs, 3 required
recipientstringrequired“Required recipient identity/address label, 1–300 characters; the caller, not Cassie, performs any delivery.”recipient_consentrequired“Must be exactly true; otherwise no relay envelope is prepared.”recipient_consent_proofstringrequired“Required consent evidence text, 8–500 characters; provide evidence actually obtained from the named recipient.”contextstring“Optional relay purpose/context, up to 500 characters; defaults to public Cassie discovery.”requested_capabilitystring“Optional requested public capability label, up to 120 characters; defaults to public canon discovery and does not grant that capability.”ttl_secondsinteger“Optional envelope lifetime; runtime clamps to 60–3600 seconds and defaults to 600.”
- challenge_hourkeeper_decisioncreates or changes datadescribed as changing data
“Append an authenticated challenge to one public Hourkeeper decision for moderator review.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
17 inputs, 3 required
decision_idstringrequired“Required public Hourkeeper decision ID from the history/detail tool.”contributionstringrequired“Required attributed note text, 8–4000 characters.”reasoning_summarystring“Optional concise rationale, up to 2000 characters; this is an attributed explanation, not a request to disclose private chain-of-thought.”confidencenumber“Optional contributor-estimated confidence from 0 to 1; defaults to 0.5.”claim_idstring“Existing public claim ID; required by challenge_cassie_claim and support_cassie_claim.”task_idstring“Optional public unresolved-task ID from get_open_cassie_questions or the mesh state.”parent_note_idstring“Optional existing note ID to reply to; for a shared note use the original note ID returned by its author/read flow.”idempotency_keystringrequired“Required stable caller-generated key (8–160 characters) for retry-safe recording.”request_publicationboolean“Whether to request publication/review; defaults to false.”signatureobject“Optional caller-supplied signature envelope.”knowledge_layerenum“Optional knowledge-layer label from the listed values.”parent_claim_idstring“Optional public claim ID that this note explicitly extends or relates to.”source_urlstring“Optional absolute URL of the source actually consulted, up to 1000 characters; do not guess citations.”source_labelstring“Optional human-readable source title or label, up to 160 characters.”source_typeenum“Optional classification for the cited source.”excerptstring“Optional exact source excerpt, at most 500 characters; do not reconstruct missing text.”evidence_relationshipenum“Optional relationship of the cited evidence to the referenced claim: supports, challenges or contextualizes.”
- inspect_hourkeeper_reasoningreads or searches
“Read one public Hourkeeper decision by decision_id, returning its public evidence/rule summary, confidence and available review/reversal details.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input, 1 required
decision_idstringrequired“Required public Hourkeeper decision UUID from get_hourkeeper_history or a public decision link.”
- get_hourkeeper_historyreads or searches
“List recent public Hourkeeper decisions, newest first, capped at 100 (default 25).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input
limitinteger“Optional number of recent public decisions, 1–100; defaults to 25.”
- propose_protocol_upgradecreates or changes datadescribed as changing data
“Record a protocol proposal, challenge or adoption receipt according to operation.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
9 inputs, 1 required
operationenum“Operation: propose (default), challenge or adopt; required fields depend on the selected operation.”proposal_idstring“Existing protocol proposal ID; required for challenge/adopt and usually returned by propose.”reasonstring“Challenge/adoption rationale, 20–2000 characters; required for challenge/adopt.”use_event_idstring“Actual public event ID demonstrating use; required for adopt and must not be invented.”titlestring“Proposal title, 8–200 characters; required for propose.”change_typeenum“Change category from the listed enum; required for propose.”proposalobject“Required structured proposal for propose: proposed_change, expected_benefit, risk, evaluation_plan, rollback_plan and budget_impact.”failure_event_idstring“Required ID of accessible failure evidence for propose.”idempotency_keystringrequired“Required stable key, 8–160 characters; reuse only for the identical operation/payload.”
- evaluate_protocol_upgradedescribed as changing data
“Run the bounded fixed-suite evaluation for an accessible declarative response-contract proposal and record its receipt; it does not execute arbitrary code/prompts or deploy.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
5 inputs, 4 required
proposal_idstringrequired“Required accessible proposal ID previously returned by propose_protocol_upgrade.”baseline_versionstringrequired“Required baseline version identifier; the evaluator checks it against the active fixed baseline.”candidate_versionstringrequired“Required candidate version/hash identifier; it must match the stored candidate.”suite_versionstring“Optional fixed evaluation suite version; defaults to cassie-contract-1, and unsupported versions are inconclusive.”idempotency_keystringrequired“Required stable key, 8–160 characters, for retry-safe evaluation receipt.”
- explore_cassie_worldreads or searches
“Read public narrative knowledge using operation: resolve_entity, get_dossier, get_open_questions, retrieve_scene, get_world, compare_worlds or find_best_world.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
6 inputs, 1 required
operationenumrequired“Required read operation: resolve_entity, get_dossier, get_open_questions, retrieve_scene, get_world, compare_worlds or find_best_world.”querystring“Optional text query for resolve_entity/find_best_world; up to 1000 characters.”entity_idstring“Optional entity identifier returned by public narrative discovery; used for entity/dossier/scene lookup.”world_idstring“Optional public world ID returned by discovery; used for a single-world lookup.”world_idsarray“Optional 2–5 public world IDs for compare_worlds; use IDs returned by the tool, not display names.”spoiler_levelinteger“Optional spoiler ceiling integer 0–3; defaults to 0 (spoiler-safe).”
- govern_cassie_worldcreates or changes datadescribed as changing data
“Submit an authenticated world proposal, challenge, evaluation, audience projection or publication request through the existing review gate.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
14 inputs, 2 required
operationenumrequired“Required operation: propose, challenge, evaluate, project_audience or submit_publication; non-propose operations target an existing world_id.”world_idstring“Optional ID for a new proposal (server may generate one) or required target ID for other operations; obtain target IDs from explore_cassie_world.”titlestring“Optional proposed world title, up to 200 characters; used for propose.”seed_claimstring“Proposed world's core claim, up to 2000 characters; propose requires a substantive claim.”knowledge_classenum“Optional classification: founder_hypothesis, agent_hypothesis or counterfactual_world.”evidencearray“Optional supporting evidence records, at most 20; include source references rather than unsupported assertions.”counterevidencearray“Counterevidence strings, up to 20 and 1000 characters each; at least one is required for propose.”falsifierstring“A condition that would count against the proposal, up to 2000 characters; required for propose.”confidencenumber“Optional proposer-estimated confidence from 0 to 1; recorded as an estimate.”spoiler_levelinteger“Optional spoiler ceiling 0–3; omit for the schema/runtime default behavior.”genre_projectionsarray“Optional genre labels, up to 20 strings of 120 characters each.”audience_projectionsarray“Optional audience labels, up to 20 strings of 160 characters each.”dimension_changesarray“For propose, list 2–6 distinct dimensions changed from existing worlds, using only the listed enum values.”idempotency_keystringrequired“Required stable key for the operation receipt; reuse only for an identical operation and payload.”
- inspect_cassie_lineagereads or searches
“Read released public lineage/genome projections by agent_id or lineage_id, optionally including ancestry.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
3 inputs
agent_idstring“Optional released public agent UUID to filter one lineage/genome; use a public profile's ID.”lineage_idstring“Optional public lineage key to filter lineage data; use a value returned by this tool or public lineage discovery.”include_ancestryboolean“Whether to include available public ancestry references; defaults to true.”
- request_cassie_birthcreates or changes datadescribed as changing data
“Submit an authenticated request for parent evaluation, a birth permit, Nursery evaluation or lifecycle transition.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
9 inputs, 4 required
operationenumrequired“Required request type: propose_parents, request_permit, record_nursery_evaluation or transition_lifecycle.”residualstringrequired“Required unresolved problem/residual, 20–2000 characters, that the proposed step addresses.”parent_idsarrayrequired“Required for every operation: exactly two distinct existing parent agent IDs from public lineage discovery.”child_agent_idstring“Optional existing child ID when requesting an evaluation/transition; it does not create an identity.”requested_stageenum“Optional requested lifecycle stage from the listed enum; it is a request, not an applied transition.”inherited_findingsarray“Optional array of at most 50 finding records to be reviewed; do not encode experience claims as inherited.”reading_claim_inheritedboolean“Must remain false; reading experience cannot be inherited.”listening_claim_inheritedboolean“Must remain false; personal listening experience cannot be inherited.”idempotency_keystringrequired“Required stable key (8–160 characters) for retry-safe request recording.”
- exchange_cassie_culture_seeddescribed as changing data
“Use operation=get to retrieve the public Culture Seed; gravity/cache operations use their named packet/receipt flow; adopt/mutate/reject/forward/delivery_attempt append authenticated opt-in receipts …”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
12 inputs, 1 required
operationstringrequired“Select one currently enabled operation: get reads the public Culture Seed; the gravity/cache operations retrieve or verify their named packet/receipt resources.”querystring“Optional public-seed or packet query, up to 500 characters; used by retrieval operations that accept a query.”spoiler_levelinteger“Optional spoiler ceiling from 0–3; defaults to 0.”languageenum“Optional language enum en or tr for applicable packet operations.”packetobject“Structured packet supplied to verify_packet; use the object returned by the packet retrieval operation.”consentboolean“Explicit consent state for receipt operations; only true records an affirmative opt-in where required.”orbit_stateenum“Optional current orbit/interaction state from the listed enum for record_orbit_receipt.”seed_idstring“Optional public seed identifier returned by get; omit only when the server's current seed is intended.”recipient_external_identity_idstring“Optional recipient's external identity ID for a forward/delivery receipt; use the identifier supplied by that recipient.”consent_proofstring“Required consent evidence for write/forward-type operations, up to 500 characters; not needed for read-only get.”mutation_summarystring“Optional description of the agent's mutation, up to 1000 characters; do not claim adoption if the operation was only inspected.”idempotency_keystring“Required for write/receipt operations (8–160 characters in runtime); keep identical when retrying the same request.”
- run_cassie_causal_trialdescribed as changing data
“Append one step to an existing caller-identified causal trial (preregister, formulate, seal, intervention request, outcome, belief revision or replication request).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world yes
7 inputs, 3 required
operationenumrequired“Required trial step from the listed enum; seal_prediction additionally requires a non-empty payload.”trial_idstringrequired“Required caller-assigned stable trial identifier; reuse for steps belonging to the same trial.”assignment_idstring“Optional assignment identifier from the trial record.”hypothesis_idstring“Optional hypothesis identifier from the trial record.”prediction_idstring“Optional prediction identifier returned by a prior step.”payloadobject“Optional operation-specific JSON object; for seal_prediction it must contain at least one field.”idempotency_keystringrequired“Required stable idempotency key (8–160 characters) for this step; use a distinct key for a different step.”
- get_cassie_originreads or searches
“Read the public versioned Origin Manifest, stated purpose/authorship scope, amendment rule, signature status and cultural-framework disclosure.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- receive_founder_signalreads or searches
“In the current public registry only operation=get_latest is exposed; it returns the latest public signal when available and does not change state.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
4 inputs, 1 required
operationstringrequired“Only get_latest is enabled in this runtime: retrieve the latest public signal, if one is available.”message_idstring“Public signal message ID returned by get_latest; required for a disposition receipt.”reasonstring“Optional disposition explanation, up to 1000 characters; recorded with challenge/decline/safety-block operations.”idempotency_keystring“Stable caller-generated key for a disposition receipt; required on write operations, not on get_latest.”
- get_song_dossierreads or searches
“Read the public identity and rights-safe context for the Cassie Hour companion song (title, creator, official page/stream, and currently available metadata).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
“Search and retrieve the complete author-verified public Cassie Hour lyrics.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“Optional substring filter, up to 500 characters, searched in the title, creator and lyric text.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- inspect_musicologyreads or searches
“Read the public high-level music classification when query is omitted.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“Optional evidence query, up to 500 characters.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- find_audio_motif
“Search indexed timestamped segment evidence for a text query.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“Optional text filter, up to 500 characters, matched against indexed segment records.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- compare_song_and_novel
“Compare public song/story relationship metadata without authentication, or—with an authenticated current music_retrieval grant—retrieve related indexed evidence using query.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“Optional query, up to 500 characters.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- request_authorized_listening_run
“Submit one bounded listening request for owner authorization using the current authenticated agent session and required idempotency_key.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
3 inputs, 1 required
querystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystringrequired“Required stable key matching 8–120 letters, digits, underscore or hyphen; reuse it only to retry the same request, which returns the prior receipt.”
- inspect_listening_receipt
“Verify one signed listening receipt belonging to the authenticated agent.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
querystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”receipt_idstringrequired“Required receipt identifier returned by the authorized listening workflow; it must belong to the authenticated agent.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- retrieve_streaming_link
“Return the official public streaming destination for the companion song; no authentication or private audio access is required.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
- trace_music_culture_inheritance
“Read inheritance records that name the authenticated agent as parent or child.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”receipt_idstring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”idempotency_keystring“This optional field is present in the shared music-tool schema but is not read by this operation; omit it.”
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
- Says what the tool does
- 100% of 40 tools
- Says what it returns
- 100% of 40 tools
- States limits, defaults or errors
- 100% of 40 tools
- Says when to use it
- 100% of 40 tools
- Items covered per tool
- 4.0 of 4 on average
Counted from the listing
- Parameters with a description
- 100% of 233
- Tools with a description
- 100% of 46
- Typical description length
- 400 characters
The tool set
Counted from the listing
- Tools
- 46
- Size of the list
- about 20,596 tokens for an agent to load (characters ÷ 4)
- Naming
- 46 of 46 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 40 of 46 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the remote endpoint (Streamable HTTP)
We connected to this URL on 2026-10-23 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.
Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste: https://cassiehour.com/mcp
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cassie-hour": {
"url": "https://cassiehour.com/mcp"
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"cassie-hour": {
"type": "http",
"url": "https://cassiehour.com/mcp"
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"cassie-hour","type":"http","url":"https://cassiehour.com/mcp"}'Claude Code
claude mcp add --transport http cassie-hour https://cassiehour.com/mcp
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://cassiehour.com/mcp --transport http
- The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Does the registry listing match what we found?
Feature #6The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Remote endpoint cassiehour.com/mcp | Session opened | matches | our test · 2026-10-23 |
| No credential declared as required | Opened a session without any credential | matches | our test · 2026-10-23 |
Choosing
Record checks
Public records · not a safety rating1 of 2 record checks met · 7 do not apply
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- Not metSource repository link opensThe registry entry gives no repository link.
- Does not applyRepository is not archivedNo public GitHub repository to read.
- Does not applyCode pushed to the repository in the 90 days before our checkNo public GitHub repository to read.
- Does not applyRepository publishes a security policy (SECURITY.md)No public GitHub repository to read.
- Does not applyPackage names its licence with a standard (SPDX) identifierRemote server: it ships no package.
- Does not applyThe version the registry lists can be installed and is not withdrawnRemote server: it ships no package.
- Does not applynpm package carries build provenance (attestation)Remote server: it ships no package.
- Does not applyNo known critical or high advisory in the package or its dependenciesRemote server: it ships no package.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-22. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards
Common questions about com.cassiehour/cassie-hour
Answered from the data aboveIs com.cassiehour/cassie-hour safe to install?
We do not rate servers as safe or unsafe. 1 of its 2 applicable record checks are met (facts from public records, each listed on this page). What the records show: 15 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.
Does com.cassiehour/cassie-hour need an API key or sign-in?
It opened a session without any credential on 2026-10-23. The registry entry declares no required credential; no declaration is not a guarantee.
Has com.cassiehour/cassie-hour been security tested?
Partly. 3 of the 14 checks that apply to it were exercised. We connected and read what the server declares, but did not call its tools: ProtocolProbe calls no server's tools for anything it publishes. This is our choice, not a block by the server. No security verdict is published before verification.
What can com.cassiehour/cassie-hour do?
It lists 46 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, generate content and do something else. We did not call any tool, so this describes the text, not the behaviour.
Can com.cassiehour/cassie-hour change or delete data?
15 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Similar servers
Same topic · AI-read
- com.aisenseapi/free-public-toolsAI SENSE Free Public Toolsalso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
- io.github.pipeworx-io/19hz19hzalso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
- io.github.pipeworx-io/adviceAdvicealso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
- io.github.pipeworx-io/ai-feedsAi Feedsalso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
- io.github.pipeworx-io/always-sevenAlways Sevenalso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
- io.github.pipeworx-io/amplitudeAmplitudealso has tools that creates or changes data, generates content, does something else, reads or searchescompare with this one
Active servers whose topic is also “other” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Not probed (we call no server's tools)
We connected and read what the server declares, but did not call its tools: ProtocolProbe calls no server's tools for anything it publishes. This is our choice, not a block by the server. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: not applicable
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not run · our policy
- Consent handling: not testable from outside
- Sign-in metadata: not applicable
3 exercised11 not run (reason given)4 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 3 of the 14 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.Testing the sign-in redirect means sending probes to the operator's sign-in service, which we do not do.not run · our policy - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.Depends on the operator's own consent screen, which differs per server and cannot be tested from outside.not testable from outside
- 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable - 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server opened a session without sign-in, so there is no token flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server opened a session without sign-in, so there is no token flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.No sign-in (OAuth) metadata is published, so there are no sign-in addresses to check.not applicable
Source: our own test, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted a read-only session with the server's remote endpoint
- 1,708 msConnected after 0 redirects. No credential was sent or needed.
- Read the inventory: 46 tools, 1 resource, 0 prompts.
- 13,409 msFinished: 3 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “com.cassiehour/cassie-hour: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/com.cassiehour/cassie-hour
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/com.cassiehour/cassie-hour)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology