Skip to main content
Glama

get_text_mined_terms

Read-onlyIdempotent

Retrieve text-mined annotations like genes, diseases, chemicals, organisms, and GO terms for a PMID or PMCID from Europe PMC, with optional semantic-type filtering.

Instructions

Get text-mined annotations from Europe PMC.

Returns entities extracted from the article text including genes, diseases, chemicals, organisms, and more. source is exactly one PMID or PMCID.

Args: source: {"kind":"pmid","value":"12345678"} or {"kind":"pmcid","value":"PMC7096777"}. semantic_type: Filter by entity type. Options: - "GENE_PROTEIN": Genes and proteins - "DISEASE": Diseases and conditions - "CHEMICAL": Drugs and chemicals - "ORGANISM": Species and organisms - "GO_TERM": Gene Ontology terms - None: Return all types (default)

Returns: List of text-mined entities with counts and sections.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYes
output_formatNomarkdown
semantic_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed27 schema fields changedv0.7.7
    • addedInput schema / $defs / PMCIDSource / properties / kind / anyOf
      Added value: +[
      +  {
      +    "const": "pmcid",
      +    "title": "Kind",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^[ \\t\\r\\n]*(?:[pP][mM][cC][iI][dD])[ \\t\\r\\n]*$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / PMCIDSource / properties / kind / const
      Removed value: -"pmcid"
    • removedInput schema / $defs / PMCIDSource / properties / kind / type
      Removed value: -"string"
    • addedInput schema / $defs / PMCIDSource / properties / value / description
      Added value: +"Complete identifier string; optional identifier prefix, official article URL, or inline backticks. No numbers, foreign hosts, URL queries/fragments or partial identifiers."
    • addedInput schema / $defs / PMCIDSource / properties / value / examples
      Added value: +[
      +  "PMC12345",
      +  "https://pmc.ncbi.nlm.nih.gov/articles/PMC12345/"
      +]
    • addedInput schema / $defs / PMCIDSource / properties / value / format
      Added value: +"pubmed-pmcid"
    • changedInput schema / $defs / PMCIDSource / properties / value / maxLength
      Previous value: -23New value: +512
    • addedInput schema / $defs / PMCIDSource / properties / value / minLength
      Added value: +1
    • removedInput schema / $defs / PMCIDSource / properties / value / pattern
      Removed value: -"^PMC[1-9][0-9]{0,19}$"
    • addedInput schema / $defs / PMCIDSource / properties / value / x-pubmed-input
      Added value: +"pmcid"
    • addedInput schema / $defs / PMIDSource / properties / kind / anyOf
      Added value: +[
      +  {
      +    "const": "pmid",
      +    "title": "Kind",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^[ \\t\\r\\n]*(?:[pP][mM][iI][dD])[ \\t\\r\\n]*$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / PMIDSource / properties / kind / const
      Removed value: -"pmid"
    • removedInput schema / $defs / PMIDSource / properties / kind / type
      Removed value: -"string"
    • addedInput schema / $defs / PMIDSource / properties / value / description
      Added value: +"Complete identifier string; optional identifier prefix, official article URL, or inline backticks. No numbers, foreign hosts, URL queries/fragments or partial identifiers."
    • addedInput schema / $defs / PMIDSource / properties / value / examples
      Added value: +[
      +  "33053718",
      +  "PMID:33053718",
      +  "https://pubmed.ncbi.nlm.nih.gov/33053718/"
      +]
    • addedInput schema / $defs / PMIDSource / properties / value / format
      Added value: +"pubmed-pmid"
    • changedInput schema / $defs / PMIDSource / properties / value / maxLength
      Previous value: -20New value: +512
    • addedInput schema / $defs / PMIDSource / properties / value / minLength
      Added value: +1
    • removedInput schema / $defs / PMIDSource / properties / value / pattern
      Removed value: -"^[1-9][0-9]{0,19}$"
    • addedInput schema / $defs / PMIDSource / properties / value / x-pubmed-input
      Added value: +"pmid"
    • addedInput schema / properties / output_format / anyOf
      Added value: +[
      +  {
      +    "default": "markdown",
      +    "enum": [
      +      "markdown",
      +      "json",
      +      "toon"
      +    ],
      +    "title": "Output Format",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^[ \\t\\r\\n]*(?:[mM][aA][rR][kK][dD][oO][wW][nN]|[jJ][sS][oO][nN]|[tT][oO][oO][nN])[ \\t\\r\\n]*$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / output_format / enum
      Removed value: -[
      -  "markdown",
      -  "json",
      -  "toon"
      -]
    • removedInput schema / properties / output_format / type
      Removed value: -"string"
    • changedInput schema / properties / semantic_type / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "GENE_PROTEIN",
      -      "DISEASE",
      -      "CHEMICAL",
      -      "ORGANISM",
      -      "GO_TERM",
      -      "EFO"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "enum": [
      +          "GENE_PROTEIN",
      +          "DISEASE",
      +          "CHEMICAL",
      +          "ORGANISM",
      +          "GO_TERM",
      +          "EFO"
      +        ],
      +        "type": "string"
      +      },
      +      {
      +        "pattern": "^[ \\t\\r\\n]*(?:[gG][eE][nN][eE]_[pP][rR][oO][tT][eE][iI][nN]|[dD][iI][sS][eE][aA][sS][eE]|[cC][hH][eE][mM][iI][cC][aA][lL]|[oO][rR][gG][aA][nN][iI][sS][mM]|[gG][oO]_[tT][eE][rR][mM]|[eE][fF][oO])[ \\t\\r\\n]*$",
      +        "type": "string"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / source / anyOf
      Added value: +[
      +  {
      +    "discriminator": {
      +      "mapping": {
      +        "pmcid": "#/$defs/PMCIDSource",
      +        "pmid": "#/$defs/PMIDSource"
      +      },
      +      "propertyName": "kind"
      +    },
      +    "oneOf": [
      +      {
      +        "$ref": "#/$defs/PMIDSource"
      +      },
      +      {
      +        "$ref": "#/$defs/PMCIDSource"
      +      }
      +    ],
      +    "title": "Source"
      +  },
      +  {
      +    "contentMediaType": "application/json",
      +    "contentSchema": {
      +      "discriminator": {
      +        "mapping": {
      +          "pmcid": "#/$defs/PMCIDSource",
      +          "pmid": "#/$defs/PMIDSource"
      +        },
      +        "propertyName": "kind"
      +      },
      +      "oneOf": [
      +        {
      +          "$ref": "#/$defs/PMIDSource"
      +        },
      +        {
      +          "$ref": "#/$defs/PMCIDSource"
      +        }
      +      ],
      +      "title": "Source"
      +    },
      +    "description": "One JSON-encoded container; the decoded value must satisfy contentSchema.",
      +    "maxLength": 1000000,
      +    "type": "string"
      +  },
      +  {
      +    "description": "One JSON code fence; after removing the fence, decode JSON and validate against x-pubmed-decodedSchema.",
      +    "maxLength": 1000000,
      +    "pattern": "^\\s*```(?:[jJ][sS][oO][nN])?[ \\t]*\\r?\\n[\\s\\S]*\\r?\\n```\\s*$",
      +    "type": "string",
      +    "x-pubmed-decodedSchema": {
      +      "discriminator": {
      +        "mapping": {
      +          "pmcid": "#/$defs/PMCIDSource",
      +          "pmid": "#/$defs/PMIDSource"
      +        },
      +        "propertyName": "kind"
      +      },
      +      "oneOf": [
      +        {
      +          "$ref": "#/$defs/PMIDSource"
      +        },
      +        {
      +          "$ref": "#/$defs/PMCIDSource"
      +        }
      +      ],
      +      "title": "Source"
      +    },
      +    "x-pubmed-encoding": "fenced-json"
      +  }
      +]
    • removedInput schema / properties / source / discriminator
      Removed value: -{
      -  "mapping": {
      -    "pmcid": "#/$defs/PMCIDSource",
      -    "pmid": "#/$defs/PMIDSource"
      -  },
      -  "propertyName": "kind"
      -}
    • removedInput schema / properties / source / oneOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/PMIDSource"
      -  },
      -  {
      -    "$ref": "#/$defs/PMCIDSource"
      -  }
      -]
  2. Changed8 schema fields changedv0.7.2
    • addedInput schema / $defs
      Added value: +{
      +  "PMCIDSource": {
      +    "additionalProperties": false,
      +    "description": "An explicit PubMed Central identifier.",
      +    "properties": {
      +      "kind": {
      +        "const": "pmcid",
      +        "title": "Kind",
      +        "type": "string"
      +      },
      +      "value": {
      +        "maxLength": 23,
      +        "pattern": "^PMC[1-9][0-9]{0,19}$",
      +        "title": "Value",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "value"
      +    ],
      +    "title": "PMCIDSource",
      +    "type": "object"
      +  },
      +  "PMIDSource": {
      +    "additionalProperties": false,
      +    "description": "An explicit PubMed identifier.",
      +    "properties": {
      +      "kind": {
      +        "const": "pmid",
      +        "title": "Kind",
      +        "type": "string"
      +      },
      +      "value": {
      +        "maxLength": 20,
      +        "pattern": "^[1-9][0-9]{0,19}$",
      +        "title": "Value",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "value"
      +    ],
      +    "title": "PMIDSource",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / pmcid
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Pmcid"
      -}
    • removedInput schema / properties / pmid
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Pmid"
      -}
    • changedInput schema / properties / semantic_type / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "GENE_PROTEIN",
      +      "DISEASE",
      +      "CHEMICAL",
      +      "ORGANISM",
      +      "GO_TERM",
      +      "EFO"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / source
      Added value: +{
      +  "discriminator": {
      +    "mapping": {
      +      "pmcid": "#/$defs/PMCIDSource",
      +      "pmid": "#/$defs/PMIDSource"
      +    },
      +    "propertyName": "kind"
      +  },
      +  "oneOf": [
      +    {
      +      "$ref": "#/$defs/PMIDSource"
      +    },
      +    {
      +      "$ref": "#/$defs/PMCIDSource"
      +    }
      +  ],
      +  "title": "Source"
      +}
    • addedInput schema / required
      Added value: +[
      +  "source"
      +]
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_text_mined_termsOutput",
      -  "type": "object"
      -}New value: +null
  3. First observedv0.5.16

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the useful constraint that source is 'exactly one PMID or PMCID' and sketches the return content ('counts and sections'), but says nothing about rate limits, coverage gaps, or failure behavior for non-indexed articles.

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?

Well front-loaded: the core purpose is the first sentence, followed by cleanly separated Args and Returns blocks. Slight redundancy between the prose list of entity types and the bulleted semantic_type options, but nothing egregious.

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

Completeness3/5

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

With no output schema, the description does sketch the return ('List of text-mined entities with counts and sections'), and annotations cover safety. However, one of three parameters (output_format) is undocumented and the semantic_type list is incomplete, leaving gaps an agent must guess at.

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 coverage is 0%, so the description carries the parameter burden. It documents the source discriminator shape and gives human-readable labels for semantic_type values, but it omits the enum member 'EFO' present in the schema and never mentions the output_format parameter (markdown/json/toon) at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get text-mined annotations from Europe PMC') plus the scope of what is extracted (genes, diseases, chemicals, organisms). An agent can distinguish it from general article tools like fetch_article_details, though it never names a sibling alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the mechanics of the call (one PMID or PMCID, optional semantic_type filter) but never says when to reach for this tool versus fetch_article_details, search_gene, or get_gene_literature. No exclusions or prerequisites for the operation itself are stated.

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