Skip to main content
Glama

Find ways to serve: open needs from verified partners

find_ways_to_serve
Read-onlyIdempotent

Verified ways to serve: near a place, public needs, or a neighbor. Real, city level. Example: {mode:"near", city:"Nairobi"}. Full guide: living-bread://tools/find_ways_to_serve. Access: no sign-in; shared limit of 300 requests a minute per IP.

Input Schema

NameRequiredDescriptionDefault
latNoLatitude, if shared.
lngNoLongitude, if shared.
cityNoCity or region.
modeNoThe kind of answer. Leave out for a guide to the modes.
limitNoPage size.
detailNolean (default) or full evidence record.
countryNoCountry name or code.
remote_onlyNoFor public_needs: true lists only needs that can be met remotely.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / city / description
      Previous value: -"A city: geocoded for near, matched by name for public_needs."New value: +"City or region."
    • changedInput schema / properties / country / description
      Previous value: -"A country name (or ISO code for public_needs): \"Rwanda\", \"Kenya\"."New value: +"Country name or code."
    • changedInput schema / properties / detail / description
      Previous value: -"lean (default): the answer, its credit and one door. full: the complete evidence record (per-passage hashes, canon, layers)."New value: +"lean (default) or full evidence record."
    • changedInput schema / properties / lat / description
      Previous value: -"Latitude in decimal degrees, only if the person shared their location; pair with lng. Coordinates win over city."New value: +"Latitude, if shared."
    • changedInput schema / properties / limit / description
      Previous value: -"For near: maximum needs, 1 to 20 (default 8)."New value: +"Page size."
    • changedInput schema / properties / lng / description
      Previous value: -"Longitude in decimal degrees, paired with lat."New value: +"Longitude, if shared."
    • changedInput schema / properties / mode / description
      Previous value: -"Which kind of answer: near, public_needs, neighbor. Each mode, and the parameters it needs, is explained in the description. Leave it out and the answer says what each mode is for."New value: +"The kind of answer. Leave out for a guide to the modes."
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / properties / answered_by
      Removed value: -{
      -  "description": "The implementation that answered (the same tool name the signed-in endpoint lists).",
      -  "type": "string"
      -}
    • removedOutput schema / properties / attribution
      Removed value: -{
      -  "description": "Credit: The Living Bread (living-bread.org).",
      -  "type": "string"
      -}
    • removedOutput schema / properties / content_flags
      Removed value: -{
      -  "description": "Set when retrieved text was withheld.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / content_layers
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "full detail: Scripture versus interpretation versus reflection.",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / evidence
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "When Scripture was read: translation, license, attribution, corpus version (full detail adds hashes and canon).",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / freshness
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "kind, retrieved_at, available_now (true only when verified live).",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / ids
      Removed value: -{
      -  "description": "Up to 25 ids in this answer.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / ignored_params
      Removed value: -{
      -  "description": "Parameters given that this mode does not use.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / license
      Removed value: -{
      -  "description": "License URL (CC BY 4.0 unless stated).",
      -  "type": "string"
      -}
    • removedOutput schema / properties / mode
      Removed value: -{
      -  "description": "The mode that answered.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / next_actions
      Removed value: -{
      -  "description": "Links to open next.",
      -  "items": {
      -    "additionalProperties": {},
      -    "properties": {
      -      "label": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "label",
      -      "url"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / ok
      Removed value: -{
      -  "description": "Always true on success.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / result_state
      Removed value: -{
      -  "description": "\"empty\" when nothing matched.",
      -  "enum": [
      -    "useful",
      -    "empty"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / scripture_fields
      Removed value: -{
      -  "description": "Which fields are Scripture (all else is the house's own words).",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / source_url
      Removed value: -{
      -  "description": "A public page of The Living Bread this answer came from.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / visibility
      Removed value: -{
      -  "description": "\"public\" or \"yours\".",
      -  "type": "string"
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "mode",
      -  "answered_by"
      -]
  2. Changed14 schema fields changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "lean (default): the answer, its credit and one door. full: the complete evidence record (per-passage hashes, canon, layers).",
      +  "enum": [
      +    "lean",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / attribution / description
      Previous value: -"Credit line for the data: The Living Bread (living-bread.org)."New value: +"Credit: The Living Bread (living-bread.org)."
    • changedOutput schema / properties / content_flags / description
      Previous value: -"[\"instruction_like_text_removed\"] when retrieved text was withheld."New value: +"Set when retrieved text was withheld."
    • changedOutput schema / properties / content_layers / description
      Previous value: -"Which fields are Scripture and which are human interpretation or reflection."New value: +"full detail: Scripture versus interpretation versus reflection."
    • changedOutput schema / properties / evidence / description
      Previous value: -"Present when Scripture was read: translation, canon, corpus version, attribution, and a SHA-256 per passage."New value: +"When Scripture was read: translation, license, attribution, corpus version (full detail adds hashes and canon)."
    • changedOutput schema / properties / freshness / description
      Previous value: -"How current the answer is: kind (scheduled | recently_observed | verified_live | record), retrieved_at, available_now (true only when activity was verified live)."New value: +"kind, retrieved_at, available_now (true only when verified live)."
    • changedOutput schema / properties / ids / description
      Previous value: -"Up to 25 ids found in this answer, for follow-up calls."New value: +"Up to 25 ids in this answer."
    • changedOutput schema / properties / license / description
      Previous value: -"License URL of the returned data (CC BY 4.0 unless stated)."New value: +"License URL (CC BY 4.0 unless stated)."
    • changedOutput schema / properties / next_actions / description
      Previous value: -"Up to 4 links the person can open next."New value: +"Links to open next."
    • changedOutput schema / properties / ok / description
      Previous value: -"Always true on a successful answer (errors come back as isError, never here)."New value: +"Always true on success."
    • changedOutput schema / properties / result_state / description
      Previous value: -"\"empty\" when nothing matched (count 0, no results); the text then says so plainly."New value: +"\"empty\" when nothing matched."
    • addedOutput schema / properties / scripture_fields
      Added value: +{
      +  "description": "Which fields are Scripture (all else is the house's own words).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / source_url / description
      Previous value: -"The first public web page this answer came from or points to."New value: +"A public page of The Living Bread this answer came from."
    • changedOutput schema / properties / visibility / description
      Previous value: -"\"public\" for shared data, \"yours\" for the signed-in believer's own data."New value: +"\"public\" or \"yours\"."
  3. Changed2 schema fields changed
    • changedInput schema / properties / mode / description
      Previous value: -"Which kind of answer: near, public_needs, neighbor. Each mode, and the parameters it needs, is explained in the description."New value: +"Which kind of answer: near, public_needs, neighbor. Each mode, and the parameters it needs, is explained in the description. Leave it out and the answer says what each mode is for."
    • removedInput schema / required
      Removed value: -[
      -  "mode"
      -]
  4. Changed2 schema fields changed
    • changedInput schema / properties / mode / description
      Previous value: -"Which kind of answer: near, public_needs. Each mode, and the parameters it needs, is explained in the description."New value: +"Which kind of answer: near, public_needs, neighbor. Each mode, and the parameters it needs, is explained in the description."
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "near",
      -  "public_needs"
      -]New value: +[
      +  "near",
      +  "public_needs",
      +  "neighbor"
      +]
  5. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior. The description adds things annotations cannot express: no sign-in required, a shared rate limit of 300 requests/minute per IP, city-level data fidelity, and a pointer to a full guide. It stops short of describing result shape or what happens with zero results, but the added operational context is solid.

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?

Three compact sentences: purpose, example, then access constraints and a doc link, with the core intent front-loaded. The telegraphic fragments ('Real, city level.') are terse but not padding; nothing redundant is included.

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?

With an output schema present, return values need no explanation, and all 8 parameters are documented at 100% coverage. The description supplies the remaining agent-critical pieces: an example call, default-mode behavior hint, auth status, rate limit, and a link for deeper detail. Nothing needed to call 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%, so the schema already explains lat/lng, city, mode, limit, detail, country and remote_only. The description only reinforces mode and city via the example and the phrase 'near a place,' which adds marginal meaning beyond the structured fields. Baseline 3 applies.

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?

The description names the resource concretely ('verified ways to serve') and enumerates the three query modes (near a place, public needs, a neighbor), which separates it from siblings like find_churches or find_gatherings. The verb 'find' is only implied by the tool name rather than stated, but the scope ('real, city level') makes the intent unambiguous.

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

Usage Guidelines3/5

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

The example invocation ({mode:"near", city:"Nairobi"}) shows intended usage, and the mode enum in the schema clarifies the variants. However, the description never says when to pick this over the many sibling discovery tools (find_communities, find_gatherings, find_people_to_pray_with), leaving the routing decision implicit.

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