Skip to main content
Glama

Get Charity Profile

charity_profile
Read-onlyIdempotent

Fetch the full Charity Commission profile for a charity number.

Returns trustees, latest income/expenditure, insolvency flags, classifications, and countries of operation. Use charity_search first to find the charity number.

Input Schema

NameRequiredDescriptionDefault
charity_numberYesCharity Commission registration number (e.g. '1234567'). Returned by charity_search.

Output Schema

NameRequiredDescriptionDefault
addressNoRegistered address of the charity (joined address lines).
insolventNoTrue if the charity is flagged as insolvent.
reg_statusNoRegistration status code ('R', 'RM').
charity_nameNoRegistered charity name.
charity_typeNoCharity type.
latest_incomeNoLatest filed annual income in GBP.
trustee_namesNoTrustees on record. Truncated to 30 entries.
charity_numberYesCharity registration number.
who_what_whereNoWho/What/Where classification entries. The list may be truncated truncated to 50 entries.
reg_status_labelNoHuman-readable registration status.
in_administrationNoTrue if the charity is in administration.
latest_expenditureNoLatest filed annual expenditure in GBP.
trustee_names_totalNoTotal trustees upstream before truncation.
date_of_registrationNoDate of first registration.
who_what_where_totalNoTotal classification entries upstream before truncation.
charity_co_reg_numberNoCompanies House number for charities also registered as companies (Charitable Incorporated Organisations, etc.).
countries_of_operationNoCountries the charity operates in (capped at 10 upstream).
trustee_names_truncatedNoTrue if the trustee list was truncated.
who_what_where_truncatedNoTrue if the classification list was truncated.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Changed2 schema fields changed
    • changedOutput schema / properties / trustee_names / description
      Previous value: -"Trustees on record. The list may be truncated per the `max_trustees` input."New value: +"Trustees on record. Truncated to 30 entries."
    • changedOutput schema / properties / who_what_where / description
      Previous value: -"Who/What/Where classification entries. The list may be truncated per the `max_classifications` input."New value: +"Who/What/Where classification entries. The list may be truncated truncated to 50 entries."
  4. Added
  5. Removed
  6. Changed27 schema fields changed
    • addedInput schema / properties / max_classifications
      Added value: +{
      +  "default": 50,
      +  "description": "Cap on the number of Who/What/Where classification entries returned. Large charities have 100+. Default 50.",
      +  "maximum": 500,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_trustees
      Added value: +{
      +  "default": 30,
      +  "description": "Cap on the number of trustees returned. Prolific charities have 50+ trustees on file. Default 30.",
      +  "maximum": 500,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • removedInput schema / properties / response_format
      Removed value: -{
      -  "default": "markdown",
      -  "description": "Output format: 'markdown' or 'json'",
      -  "type": "string"
      -}
    • changedOutput schema / description
      Previous value: -"Generic wrapper for non-object return types."New value: +"Full Charity Commission profile for a single charity."
    • addedOutput schema / properties / address
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Registered address of the charity (joined address lines)."
      +}
    • addedOutput schema / properties / charity_co_reg_number
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Companies House number for charities also registered as companies (Charitable Incorporated Organisations, etc.)."
      +}
    • addedOutput schema / properties / charity_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Registered charity name."
      +}
    • addedOutput schema / properties / charity_number
      Added value: +{
      +  "description": "Charity registration number.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / charity_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Charity type."
      +}
    • addedOutput schema / properties / countries_of_operation
      Added value: +{
      +  "description": "Countries the charity operates in (capped at 10 upstream).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / date_of_registration
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Date of first registration."
      +}
    • addedOutput schema / properties / in_administration
      Added value: +{
      +  "default": false,
      +  "description": "True if the charity is in administration.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / insolvent
      Added value: +{
      +  "default": false,
      +  "description": "True if the charity is flagged as insolvent.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / latest_expenditure
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Latest filed annual expenditure in GBP."
      +}
    • addedOutput schema / properties / latest_income
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Latest filed annual income in GBP."
      +}
    • addedOutput schema / properties / raw
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Full raw Charity Commission profile payload for any field not surfaced explicitly on this model.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / reg_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Registration status code ('R', 'RM')."
      +}
    • addedOutput schema / properties / reg_status_label
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Human-readable registration status."
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / trustee_names
      Added value: +{
      +  "description": "Trustees on record. The list may be truncated per the `max_trustees` input.",
      +  "items": {
      +    "description": "A single charity trustee record.",
      +    "properties": {
      +      "trustee_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Trustee name."
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / trustee_names_total
      Added value: +{
      +  "default": 0,
      +  "description": "Total trustees upstream before truncation.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / trustee_names_truncated
      Added value: +{
      +  "default": false,
      +  "description": "True if the trustee list was truncated.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / who_what_where
      Added value: +{
      +  "description": "Who/What/Where classification entries. The list may be truncated per the `max_classifications` input.",
      +  "items": {
      +    "description": "Who/What/Where classification descriptor.",
      +    "properties": {
      +      "classification_desc": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Classification description text."
      +      },
      +      "classification_type": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Classification axis: 'What', 'Who', or 'Where'."
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / who_what_where_total
      Added value: +{
      +  "default": 0,
      +  "description": "Total classification entries upstream before truncation.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / who_what_where_truncated
      Added value: +{
      +  "default": false,
      +  "description": "True if the classification list was truncated.",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "charity_number"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  7. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is in disclosing the scope of returned data — a summary of the profile sections. It does not discuss rate limits, paging, or error behavior for invalid numbers, which is a minor gap given an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short lines: purpose first, then a compact list of return categories, then the prerequisite call. Every sentence carries information and nothing is repeated from the schema or annotations.

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

Completeness5/5

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

For a single-parameter read tool with rich annotations and an output schema, the description covers purpose, prerequisite workflow, and the shape of the result. Nothing an agent needs in order to invoke it correctly is missing.

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 description coverage is 100%, and the schema already explains that charity_number is the Charity Commission registration number returned by charity_search. The description only echoes this, adding no format or edge-case detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Fetch the full Charity Commission profile for a charity number') and enumerates the payload categories (trustees, income/expenditure, insolvency flags, classifications, countries). This makes it clearly the detail-lookup counterpart to the sibling charity_search.

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

Usage Guidelines4/5

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

Explicitly instructs 'Use charity_search first to find the charity number', giving the prerequisite and the recommended ordering versus the sibling search tool. It stops short of stating exclusions (e.g. what to do if only a name is known, or that this should not be used for bulk lookups).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.