hypathesis

Variable relationships from research papers with causal direction and source traceback.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
68%
Naming quality
95%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin get_variable_relationships

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,072Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.84% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "hypathesis": {
      "url": "https://hypathesis.com/mcp"
    }
  }
}

Remote endpoints

https://hypathesis.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_analysis_status(file_id, authorization, session_token)

Check the processing status of an uploaded paper. Poll this tool after uploading a PDF until status is 'Ready' before calling get_variable_relationships. Args: file_id: The file_id returned by the /upload endpoint. authorization: Optional. API key as 'Bearer hk_...' or 'hk_...'. session_token: Optional. The session_token returned by /upload for anonymous uploads. Returns: { "status": "Processing" | "Ready" | "Empty" | "Ineligible" | "Pending", "edges_count": int, "variables_count": int }

Input Schema

{
  "type": "object",
  "properties": {
    "file_id": {
      "title": "File Id",
      "type": "string"
    },
    "authorization": {
      "default": "",
      "title": "Authorization",
      "type": "string"
    },
    "session_token": {
      "default": "",
      "title": "Session Token",
      "type": "string"
    }
  },
  "required": [
    "file_id"
  ],
  "title": "get_analysis_statusArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "additionalProperties": true,
      "title": "Result",
      "type": "object"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_analysis_statusOutput"
}
🟢get_variable_relationships(file_id, authorization, session_token)

Retrieve analyzed variable relationships for a completed paper. Only returns results when get_analysis_status reports status='Ready'. Without an API key (anonymous): returns the relationship list with source, target, and direction — but detailed reasoning is available only with an API key. Sign up at https://hypathesis.com to get one. Args: file_id: The file_id returned by the /upload endpoint. authorization: Optional. API key as 'Bearer hk_...' or 'hk_...'. session_token: Optional. The session_token returned by /upload for anonymous uploads. Returns: Authenticated: full details (source, target, directed, reason per relationship; name, measure per variable). Anonymous: gated (source, target, directed per relationship; name per variable; sign_up_url for full access).

Input Schema

{
  "type": "object",
  "properties": {
    "file_id": {
      "title": "File Id",
      "type": "string"
    },
    "authorization": {
      "default": "",
      "title": "Authorization",
      "type": "string"
    },
    "session_token": {
      "default": "",
      "title": "Session Token",
      "type": "string"
    }
  },
  "required": [
    "file_id"
  ],
  "title": "get_variable_relationshipsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "additionalProperties": true,
      "title": "Result",
      "type": "object"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_variable_relationshipsOutput"
}
🟢initiate_device_auth

Start a browser-based sign-in flow to get an API key for full access. Call this when you need detailed analysis results (reasoning, measurements) that require authentication. Returns a verification URL to show to the user. After the user signs in, poll check_device_auth with the returned user_code to get the API key. Returns: { "verification_url": str, "user_code": str, "expires_in": 600, "message": str }

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "initiate_device_authArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "additionalProperties": true,
      "title": "Result",
      "type": "object"
    }
  },
  "required": [
    "result"
  ],
  "title": "initiate_device_authOutput"
}
🟢check_device_auth(user_code)

Check if the user has completed browser sign-in for a device auth request. Poll this after calling initiate_device_auth. Returns status 'pending' while waiting, or 'complete' with an api_key when the user has signed in. Use the returned api_key as the authorization parameter in other tools. Args: user_code: The user_code returned by initiate_device_auth. Returns: Pending: {"status": "pending"} Complete: {"status": "complete", "api_key": "hk_..."} Error: {"error": "..."}

Input Schema

{
  "type": "object",
  "properties": {
    "user_code": {
      "title": "User Code",
      "type": "string"
    }
  },
  "required": [
    "user_code"
  ],
  "title": "check_device_authArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "additionalProperties": true,
      "title": "Result",
      "type": "object"
    }
  },
  "required": [
    "result"
  ],
  "title": "check_device_authOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools