Server definition
- Hash
- sha256:121e31ba98966ea31d05e8b37d7451fd353188711c5aab1b23f66a27e41fefde
- What it is
- What a remote MCP server returned when asked what it offers: 4 tools
The blob, as servednamed by its sha256
{
"instructions": "Hypathesis analyzes research papers and extracts structured variable relationships with causal direction. IMPORTANT: In Claude Desktop, use Code mode (not Chat or Cowork). Workflow: (1) upload a PDF via: curl -s -F file=@/path/to/paper.pdf https://hypathesis.com/mcp/upload — this returns a file_id and starts processing automatically, (2) poll get_analysis_status with the file_id until status is 'Ready', (3) call get_variable_relationships with the file_id to retrieve results. No account needed for basic results. With an API key you also get detailed reasoning. To get an API key, call initiate_device_auth — this gives the user a link to sign in with Google, and you get an API key automatically. IMPORTANT: After receiving an API key, save it to a file called .hypathesis-key in the working directory so it persists across sessions. On future sessions, check for .hypathesis-key first — if it exists, use that key instead of initiating device auth again. Pass the API key in the Authorization header when uploading: curl -s -H 'Authorization: Bearer hk_...' -F [email protected] https://hypathesis.com/mcp/upload If the upload fails with a network error, ask the user to switch to Code mode in Claude Desktop, which has the network access needed for file uploads.",
"tools": [
{
"description": "\n Check if the user has completed browser sign-in for a device auth request.\n\n Poll this after calling initiate_device_auth. Returns status 'pending'\n while waiting, or 'complete' with an api_key when the user has signed in.\n Use the returned api_key as the authorization parameter in other tools.\n\n Args:\n user_code: The user_code returned by initiate_device_auth.\n\n Returns:\n Pending: {\"status\": \"pending\"}\n Complete: {\"status\": \"complete\", \"api_key\": \"hk_...\"}\n Error: {\"error\": \"...\"}\n ",
"inputSchema": {
"properties": {
"user_code": {
"title": "User Code",
"type": "string"
}
},
"required": [
"user_code"
],
"title": "check_device_authArguments",
"type": "object"
},
"name": "check_device_auth",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "check_device_authOutput",
"type": "object"
}
},
{
"description": "\n Check the processing status of an uploaded paper.\n\n Poll this tool after uploading a PDF until status is 'Ready' before\n calling get_variable_relationships.\n\n Args:\n file_id: The file_id returned by the /upload endpoint.\n authorization: Optional. API key as 'Bearer hk_...' or 'hk_...'.\n session_token: Optional. The session_token returned by /upload for anonymous uploads.\n\n Returns:\n {\n \"status\": \"Processing\" | \"Ready\" | \"Empty\" | \"Ineligible\" | \"Pending\",\n \"edges_count\": int,\n \"variables_count\": int\n }\n ",
"inputSchema": {
"properties": {
"authorization": {
"default": "",
"title": "Authorization",
"type": "string"
},
"file_id": {
"title": "File Id",
"type": "string"
},
"session_token": {
"default": "",
"title": "Session Token",
"type": "string"
}
},
"required": [
"file_id"
],
"title": "get_analysis_statusArguments",
"type": "object"
},
"name": "get_analysis_status",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "get_analysis_statusOutput",
"type": "object"
}
},
{
"description": "\n Retrieve analyzed variable relationships for a completed paper.\n\n Only returns results when get_analysis_status reports status='Ready'.\n\n Without an API key (anonymous): returns the relationship list with\n source, target, and direction — but detailed reasoning is available\n only with an API key. Sign up at https://hypathesis.com to get one.\n\n Args:\n file_id: The file_id returned by the /upload endpoint.\n authorization: Optional. API key as 'Bearer hk_...' or 'hk_...'.\n session_token: Optional. The session_token returned by /upload for anonymous uploads.\n\n Returns:\n Authenticated: full details (source, target, directed, reason per\n relationship; name, measure per variable).\n Anonymous: gated (source, target, directed per relationship;\n name per variable; sign_up_url for full access).\n ",
"inputSchema": {
"properties": {
"authorization": {
"default": "",
"title": "Authorization",
"type": "string"
},
"file_id": {
"title": "File Id",
"type": "string"
},
"session_token": {
"default": "",
"title": "Session Token",
"type": "string"
}
},
"required": [
"file_id"
],
"title": "get_variable_relationshipsArguments",
"type": "object"
},
"name": "get_variable_relationships",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "get_variable_relationshipsOutput",
"type": "object"
}
},
{
"description": "\n Start a browser-based sign-in flow to get an API key for full access.\n\n Call this when you need detailed analysis results (reasoning, measurements)\n that require authentication. Returns a verification URL to show to the user.\n After the user signs in, poll check_device_auth with the returned user_code\n to get the API key.\n\n Returns:\n {\n \"verification_url\": str,\n \"user_code\": str,\n \"expires_in\": 600,\n \"message\": str\n }\n ",
"inputSchema": {
"properties": {},
"title": "initiate_device_authArguments",
"type": "object"
},
"name": "initiate_device_auth",
"outputSchema": {
"properties": {
"result": {
"additionalProperties": true,
"title": "Result",
"type": "object"
}
},
"required": [
"result"
],
"title": "initiate_device_authOutput",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:121e31ba98966ea31d05e8b37d7451fd353188711c5aab1b23f66a27e41fefde | sha256sum