Skip to main content
Glama

Get one library source

get_source
Read-onlyIdempotent

Fetch one third-party library source card by id. Output is one object: id, title, publisher, authors, date_published (YYYY-MM-DD or null), url, type, category, status, summary, tags, verified_at, and featured only when it is true. Parameter id is required and must match sources[].id from search_sources, or a list_changes entry of kind library (those ids have no prefix). Example: lightning-labs-l402-for-agents. A missing id is rejected as invalid input. An unknown id returns isError with text No source with id . A failed library read returns isError whose text is the Error message. Use search_sources instead when you have no id or need a filtered list (limit 1-50, no offset). Use list_categories instead when you need the category list. Use get_article instead for this site's own articles. Use list_changes instead for changelog rows. Free, no auth.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "get_source"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesRequired. Source id exactly as in search_sources sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match. Library changelog ids have no prefix. A missing id is invalid input. An unknown id returns isError text No source with id <id>.

Output Schema

NameRequiredDescriptionDefault
idYes
urlYes
tagsYes
typeYes
titleYes
statusNounknown
authorsYes
summaryYes
categoryYes
featuredNo
publisherYes
verified_atYes
date_publishedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / status / default
      Added value: +"unknown"
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "publisher",
      -  "authors",
      -  "date_published",
      -  "url",
      -  "type",
      -  "category",
      -  "status",
      -  "summary",
      -  "tags",
      -  "verified_at"
      -]New value: +[
      +  "id",
      +  "title",
      +  "publisher",
      +  "authors",
      +  "date_published",
      +  "url",
      +  "type",
      +  "category",
      +  "summary",
      +  "tags",
      +  "verified_at"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / status
      Added value: +{
      +  "enum": [
      +    "proposal",
      +    "individual_draft",
      +    "working_group_draft",
      +    "standard",
      +    "spec_released",
      +    "product_docs",
      +    "news",
      +    "research",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "id",
      -  "title",
      -  "publisher",
      -  "authors",
      -  "date_published",
      -  "url",
      -  "type",
      -  "category",
      -  "summary",
      -  "tags",
      -  "verified_at"
      -]New value: +[
      +  "id",
      +  "title",
      +  "publisher",
      +  "authors",
      +  "date_published",
      +  "url",
      +  "type",
      +  "category",
      +  "status",
      +  "summary",
      +  "tags",
      +  "verified_at"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"Source id exactly as returned in sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match."New value: +"Required. Source id exactly as in search_sources sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match. Library changelog ids have no prefix. A missing id is invalid input. An unknown id returns isError text No source with id <id>."
  4. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"Source id. Example: lightning-labs-l402-for-agents."New value: +"Source id exactly as returned in sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match."
  5. Changed2 schema fields changed
    • changedInput schema / properties / id / description
      Previous value: -"Source id, for example lightning-labs-l402-for-agents."New value: +"Source id. Example: lightning-labs-l402-for-agents."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "authors": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "date_published": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "featured": {
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "publisher": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "tags": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "type": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "type": "string"
      +    },
      +    "verified_at": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "title",
      +    "publisher",
      +    "authors",
      +    "date_published",
      +    "url",
      +    "type",
      +    "category",
      +    "summary",
      +    "tags",
      +    "verified_at"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds real behavior beyond them: missing id is rejected as invalid input, unknown id returns isError with the specific text 'No source with id <id>', failed reads surface the Error message, and access is free with no auth. These are exactly the failure modes an agent needs to handle.

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?

Purpose is front-loaded and the routing sentences are tight, but enumerating twelve output fields is largely redundant given a dedicated output schema, and the id format rule is stated twice (once here, once in the schema). Minor padding, no wasted sentences otherwise.

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 lookup with an output schema, the definition covers source of the id, error cases, auth/cost, and every sibling alternative. Nothing an agent needs to call it correctly or recover from failure 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 parameter description already states the source, format, prefix rule, and error behavior. The description restates the same facts (matching sources[].id, no prefix on library changelog ids, example value) rather than adding new meaning, 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?

Opens with a specific verb+resource+scope: 'Fetch one third-party library source card by id.' It explicitly distinguishes itself from near-siblings (get_article for site articles, list_changes for changelog rows), so an agent can identify it without reading any schema.

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

Usage Guidelines5/5

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

Names four concrete alternatives with the condition that selects each: search_sources when you have no id or need a filtered list, list_categories for the category list, get_article for site articles, list_changes for changelog rows. This is explicit when/when-not routing, including the 'no id' fallback.

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.

Resources