codeforanchorage/ebird-mcp
Talk to Claude about birds. A hosted MCP server exposing the eBird API as 10 tools — recent sightings, notable rarities, hotspots, taxonomy. Runs on AWS Lambda; deployable in 10 minutes with one Terraform apply.
Executive verdict
Current trust snapshot
trustsnap_dc3faab40861f0deOwn this MCP?
Claim ownership, prove control with a GitHub, DNS, or HTTP token challenge, revalidate now, publish a badge, and configure monitoring.
POST /v1/servers/github-codeforanchorage/ebird-mcp/revalidateBadge embed
[](https://verify.sentinelsignal.io/servers/github-codeforanchorage/ebird-mcp)
MCP TrustOps
TrustOps turns this report into operational controls: freshness SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/routeAlert subscription types
Production readiness class
Evidence confidence
Recommended for
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• Missingconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• OK
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Why compatibility is limited by client
Remediation checklist
- No explicit blockers recorded.
Remediation checklist
- No explicit blockers recorded.
Remediation checklist
- No explicit blockers recorded.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Partially client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing allowed | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: Yes
- Write Actions Present: No
- Oauth Configured: No
- Admin Refresh Required: No
- Safe For Company Knowledge: Yes
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Degraded
- frozen_tool_snapshot_refresh: Passes
- request_association: Passes
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Passes
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewPublic server reputation
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| May 13, 2026 07:51:01 AM UTC | Latest validation: healthy | Score 72.2 with status healthy. |
| May 13, 2026 07:51:01 AM UTC | Score changed | Score delta +2.2 versus the previous run. |
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://ebird.codeforanchorage.org/mcp
- Docs: https://ebird.codeforanchorage.org/mcp
- Support: https://github.com/codeforanchorage/ebird-mcp
- Icon: https://avatars.githubusercontent.com/u/3999742?v=4
- Remote endpoint: https://ebird.codeforanchorage.org/mcp
- Server card: none
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes |
|---|---|---|---|---|
ebird__get_recent_observations |
read | Low | freeform input surface | No explicit safeguard hints detected. |
ebird__get_recent_observations_for_species |
read | Low | freeform input surface | No explicit safeguard hints detected. |
ebird__get_notable_observations |
read | Low | freeform input surface | No explicit safeguard hints detected. |
ebird__get_nearby_observations |
read | Low | none | No explicit safeguard hints detected. |
ebird__get_nearby_notable_observations |
read | Low | none | No explicit safeguard hints detected. |
ebird__get_nearby_observations_for_species |
read | Low | freeform input surface | No explicit safeguard hints detected. |
ebird__get_hotspots |
read | Low | freeform input surface | No explicit safeguard hints detected. |
ebird__get_nearby_hotspots |
read | Low | none | No explicit safeguard hints detected. |
ebird__get_taxonomy |
read | Low | none | No explicit safeguard hints detected. |
ebird__get_taxonomy_forms |
read | Low | freeform input surface | No explicit safeguard hints detected. |
Write-action governance
Status detail: No unsafe write-action governance gaps detected on the latest validation.
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
| No high-risk tools were detected on the latest run. | |||
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Why this score?
Algorithmic score breakdown
Compatibility profiles
Connector URL: https://ebird.codeforanchorage.org/mcp # No OAuth metadata detected. # Server: github-codeforanchorage/ebird-mcp
{
"mcpServers": {
"ebird-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://ebird.codeforanchorage.org/mcp"]
}
}
}
smithery mcp add "https://ebird.codeforanchorage.org/mcp"
curl -sS https://ebird.codeforanchorage.org/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| High | Associate roots, sampling, and elicitation with active client requests | Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| High | Expose /.well-known/oauth-protected-resource | Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. | Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.Playbook
|
| High | Publish OAuth authorization-server metadata | Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. | Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.Playbook
|
| High | Publish a complete server card | Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. | Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.Playbook
|
| High | Stop asking users to paste secrets directly | Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Medium | Document minimal scopes and return cleaner auth challenges | Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. | Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.Playbook
|
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Repair prompts/list or stop advertising prompts | Prompt metadata should either work live or be removed from the advertised capability set. | Only advertise prompts if prompts/list works and prompt arguments are documented.Playbook
|
| Medium | Repair resources/list or stop advertising resources | Resource metadata should either work live or be removed from the advertised capability set. | Only advertise resources if resources/list works and resources expose stable URIs/types.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
| Low | Harden generic GET handling | Simple probe requests should not surface server instability or noisy failures. | Harden generic GET handlers around the origin of https://ebird.codeforanchorage.org/mcp so incidental traffic does not produce noisy failures.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
| Low | Publish or reconcile the server in the official MCP registry | Official registry presence improves discovery confidence and cross-source consistency. | Inspect the latest validation evidence and resolve the client-visible regression.Playbook
|
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Recovery Semantics | 0.4/4 | -3.6 |
| Dependency Supply Chain Signal | 0.5/4 | -3.5 |
| Utility Coverage | 2/4 | -2.0 |
| Spec Recency | 2/4 | -2.0 |
| Security Hygiene | 2/4 | -2.0 |
| Schema Completeness | 2/4 | -2.0 |
| Safety Transparency | 2/4 | -2.0 |
| Resource Contract | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
| Rate Limit Semantics | 2/4 | -2.0 |
| Prompt Contract | 2/4 | -2.0 |
| Maintenance Signal | 2/4 | -2.0 |
Validation diff
Regressed checks: none
Improved checks: connector_replay_probe, tool_snapshot_probe
| Component | Previous | Latest | Delta |
|---|---|---|---|
backward_compatibility_score | 2.0 | 4.0 | 2.0 |
maintenance_signal_score | 3.95 | 2.0 | -1.95 |
trust_confidence_score | 1.75 | 2.94 | 1.19 |
connector_replay_score | 3.0 | 4.0 | 1.0 |
result_shape_stability_score | 2.0 | 3.0 | 1.0 |
tool_snapshot_churn_score | 3.0 | 4.0 | 1.0 |
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||
Transport compliance drilldown
Issues: missing_protocol_header, bad_protocol_not_rejected, delete_session_unexpected, expired_session_not_404
Request association
Utility coverage
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Degraded |
|
| Safe write flow with confirmation | Passes |
|
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | n/a |
| Version | n/a | n/a |
| Homepage | n/a | n/a |
Active alerts
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Score |
|---|---|---|---|
github-codeforanchorage/ebird-mcp |
github_topic_registry | yes | 72.19 |
Alias consolidation
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Install snippets
Connector URL: https://ebird.codeforanchorage.org/mcp # No OAuth metadata detected. # Server: github-codeforanchorage/ebird-mcp
{
"mcpServers": {
"ebird-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://ebird.codeforanchorage.org/mcp"]
}
}
}
smithery mcp add "https://ebird.codeforanchorage.org/mcp"
curl -sS https://ebird.codeforanchorage.org/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.github-codeforanchorage/ebird-mcp.Claims & monitoring
No verified maintainer claim recorded.
Alert routing
| Watch | Team | Channels | Minimum severity |
|---|---|---|---|
| No active watch destinations. | |||
Maintainer analytics
Maintainer response quality
Maintainer annotations
No maintainer annotations have been recorded yet.
Maintainer rebuttals & expected behavior
No maintainer rebuttals or expected-behavior overrides are recorded yet.
Latest validation evidence
Failures
oauth_authorization_serverno authorization serveroauth_protected_resourceClient error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403openid_configurationno authorization serverprobe_noise_resilienceFetched https://ebird.codeforanchorage.org/robots.txtserver_cardClient error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403transport_compliance_probeIssues: missing protocol header, bad protocol not rejected, delete session unexpected, expired session not 404 (bad protocol=200, DELETE=405, expired session=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
OK | n/a | No high-risk write, destructive, or exec tools detected. |
advanced_capabilities_probe |
Missing | n/a | No advanced MCP capability signals detected. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: transport compliance, server card. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 147.1 ms | Check completed |
initialize |
OK | 2294.7 ms | Protocol 2025-03-26 |
interactive_flow_probe |
Missing | n/a | Check completed |
oauth_authorization_server |
Missing | n/a | no authorization server |
oauth_protected_resource |
Error | 245.8 ms | Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403 |
official_registry_probe |
Warning | n/a | Check completed |
openid_configuration |
Missing | n/a | no authorization server |
probe_noise_resilience |
Error | 89.4 ms | Fetched https://ebird.codeforanchorage.org/robots.txt |
prompt_get |
Missing | n/a | not advertised |
prompts_list |
Missing | 139.5 ms | not advertised |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
OK | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
Missing | n/a | not advertised |
resources_list |
Missing | 120.1 ms | not advertised |
server_card |
Error | 428.1 ms | Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403 |
session_resume_probe |
OK | 128.8 ms | 10 tool(s) exposed |
step_up_auth_probe |
Missing | n/a | No OAuth or incremental-scope signals detected. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 159.2 ms | 10 tool(s) exposed |
transport_compliance_probe |
Error | 254.6 ms | Issues: missing protocol header, bad protocol not rejected, delete session unexpected, expired session not 404 (bad protocol=200, DELETE=405, expired session=200). |
utility_coverage_probe |
Missing | 119.2 ms | No completions evidence; no pagination evidence; tasks missing. |
Raw evidence view
Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 0,
"capability_distribution": {
"read": 10
},
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 0,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 10,
"medium": 0
},
"secret_tools": 0,
"tool_count": 10
}
},
"latency_ms": null,
"status": "ok"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [],
"enabled_count": 0,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "missing"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"server_card"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 0,
"tool_count": 10,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "9ea4543e59d8ba10474d08b3bb9f6a48e3b478d363fac78f7e29e993a2149f64",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 147.08,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8",
"mcp-session-id": "3a90dc66-67bf-4dde-9e29-59a9143167ee"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {}
},
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "ebird-mcp",
"version": "1.0.0"
}
}
},
"url": "https://ebird.codeforanchorage.org/mcp"
},
"latency_ms": 2294.74,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403",
"url": "https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource"
},
"latency_ms": 245.85,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": false,
"official_identifiers": [
"io.github.aahl/mcp-vods",
"io.github.neverinfamous/sqlite-mcp-server",
"ai.radiusos.www/crm",
"ai.smithery/Aman-Amith-Shastry-scientific_computation_mcp",
"io.github.humanjesse/textarttools-mcp",
"ai.smithery/arjunkmrm-ts-test-2",
"io.github.levelsofself/self-awareness-game",
"ai.smithery/bergeramit-bergeramit-hw3-tech",
"com.arcself/arc-security",
"io.github.asklokesh/chanty-mcp-server"
],
"official_peer_count": 10,
"registry_source": "github_topic_registry"
},
"latency_ms": null,
"status": "warning"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 403,
"url": "https://ebird.codeforanchorage.org/robots.txt"
},
"latency_ms": 89.44,
"status": "error"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32603,
"data": "Error ID: 18839054dd5849b88210e1662959735c",
"message": "Internal error"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_advertised",
"url": "https://ebird.codeforanchorage.org/mcp"
},
"latency_ms": 139.49,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": false,
"drift_fields": [],
"metadata_document_count": 1,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"error": {
"code": -32603,
"data": "Error ID: c69cd4dc9bf643ab87d4b4abc566356a",
"message": "Internal error"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_advertised",
"url": "https://ebird.codeforanchorage.org/mcp"
},
"latency_ms": 120.12,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403",
"url": "https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json"
},
"latency_ms": 428.13,
"status": "error"
},
"session_resume_probe": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"id": 301,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Get recent bird observations in an eBird region (country, state/province, county, or hotspot). Returns species, location, count, and timestamp for each checklist entry.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations"
},
{
"description": "Get recent observations of a specific bird species in an eBird region. Useful for tracking where a target species has been seen.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"regionCode",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations_for_species"
},
{
"description": "Get notable (rare or unusual) bird observations in an eBird region. eBird flags these based on regional checklist filters.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_notable_observations"
},
{
"description": "Get recent bird observations near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_observations"
},
{
"description": "Get notable (rare or unusual) bird observations near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_notable_observations"
},
{
"description": "Get recent observations of a specific species near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"lat",
"lng",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_nearby_observations_for_species"
},
{
"description": "Get birding hotspots in an eBird region. Returns location IDs, names, coordinates, and species totals.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_hotspots"
},
{
"description": "Get birding hotspots near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_hotspots"
},
{
"description": "Get the eBird taxonomy. Returns species codes, common names, scientific names, and taxonomic ordering. Large response \u2014 narrow with `cat` if possible.",
"inputSchema": {
"properties": {
"cat": {
"description": "Taxonomic category filter: 'species', 'issf', 'hybrid', 'slash', 'spuh', 'domestic', 'form'. Default: 'species'.",
"type": "string"
},
"fmt": {
"description": "Response format. Default: 'json'.",
"enum": [
"json",
"csv"
],
"type": "string"
},
"locale": {
"description": "Locale code for common names (e.g. 'en', 'es'). Default: 'en'.",
"type": "string"
}
},
"type": "object"
},
"name": "ebird__get_taxonomy"
},
{
"description": "Get taxonomic subforms (subspecies, hybrids, etc.) for a given species code.",
"inputSchema": {
"properties": {
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_taxonomy_forms"
}
]
}
},
"requested_protocol_version": "2025-03-26",
"resumed": true,
"session_id_present": true,
"transport": "streamable-http",
"url": "https://ebird.codeforanchorage.org/mcp"
},
"latency_ms": 128.82,
"status": "ok"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 10,
"previous_tool_count": 10,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json; charset=utf-8"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Get recent bird observations in an eBird region (country, state/province, county, or hotspot). Returns species, location, count, and timestamp for each checklist entry.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations"
},
{
"description": "Get recent observations of a specific bird species in an eBird region. Useful for tracking where a target species has been seen.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"regionCode",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations_for_species"
},
{
"description": "Get notable (rare or unusual) bird observations in an eBird region. eBird flags these based on regional checklist filters.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_notable_observations"
},
{
"description": "Get recent bird observations near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_observations"
},
{
"description": "Get notable (rare or unusual) bird observations near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_notable_observations"
},
{
"description": "Get recent observations of a specific species near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"lat",
"lng",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_nearby_observations_for_species"
},
{
"description": "Get birding hotspots in an eBird region. Returns location IDs, names, coordinates, and species totals.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_hotspots"
},
{
"description": "Get birding hotspots near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_hotspots"
},
{
"description": "Get the eBird taxonomy. Returns species codes, common names, scientific names, and taxonomic ordering. Large response \u2014 narrow with `cat` if possible.",
"inputSchema": {
"properties": {
"cat": {
"description": "Taxonomic category filter: 'species', 'issf', 'hybrid', 'slash', 'spuh', 'domestic', 'form'. Default: 'species'.",
"type": "string"
},
"fmt": {
"description": "Response format. Default: 'json'.",
"enum": [
"json",
"csv"
],
"type": "string"
},
"locale": {
"description": "Locale code for common names (e.g. 'en', 'es'). Default: 'en'.",
"type": "string"
}
},
"type": "object"
},
"name": "ebird__get_taxonomy"
},
{
"description": "Get taxonomic subforms (subspecies, hybrids, etc.) for a given species code.",
"inputSchema": {
"properties": {
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_taxonomy_forms"
}
]
}
},
"url": "https://ebird.codeforanchorage.org/mcp"
},
"latency_ms": 159.2,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Get recent bird observations in an eBird region (country, state/province, county, or hotspot). Returns species, location, count, and timestamp for each checklist entry.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations"
},
{
"description": "Get recent observations of a specific bird species in an eBird region. Useful for tracking where a target species has been seen.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"regionCode",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations_for_species"
},
{
"description": "Get notable (rare or unusual) bird observations in an eBird region. eBird flags these based on regional checklist filters.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_notable_observations"
},
{
"description": "Get recent bird observations near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_observations"
},
{
"description": "Get notable (rare or unusual) bird observations near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_notable_observations"
},
{
"description": "Get recent observations of a specific species near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"lat",
"lng",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_nearby_observations_for_species"
},
{
"description": "Get birding hotspots in an eBird region. Returns location IDs, names, coordinates, and species totals.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_hotspots"
},
{
"description": "Get birding hotspots near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_hotspots"
},
{
"description": "Get the eBird taxonomy. Returns species codes, common names, scientific names, and taxonomic ordering. Large response \u2014 narrow with `cat` if possible.",
"inputSchema": {
"properties": {
"cat": {
"description": "Taxonomic category filter: 'species', 'issf', 'hybrid', 'slash', 'spuh', 'domestic', 'form'. Default: 'species'.",
"type": "string"
},
"fmt": {
"description": "Response format. Default: 'json'.",
"enum": [
"json",
"csv"
],
"type": "string"
},
"locale": {
"description": "Locale code for common names (e.g. 'en', 'es'). Default: 'en'.",
"type": "string"
}
},
"type": "object"
},
"name": "ebird__get_taxonomy"
},
{
"description": "Get taxonomic subforms (subspecies, hybrids, etc.) for a given species code.",
"inputSchema": {
"properties": {
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_taxonomy_forms"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": 405,
"expired_session_error": null,
"expired_session_status_code": 200,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected",
"delete_session_unexpected",
"expired_session_not_404"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": true,
"transport": "streamable-http"
},
"latency_ms": 254.58,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 119.2,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403",
"url": "https://ebird.codeforanchorage.org/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"probe_noise_resilience": {
"headers": {
"content-type": "application/json"
},
"http_status": 403,
"url": "https://ebird.codeforanchorage.org/robots.txt"
},
"server_card": {
"error": "Client error '403 Forbidden' for url 'https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403",
"url": "https://ebird.codeforanchorage.org/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json; charset=utf-8"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"description": "Get recent bird observations in an eBird region (country, state/province, county, or hotspot). Returns species, location, count, and timestamp for each checklist entry.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations"
},
{
"description": "Get recent observations of a specific bird species in an eBird region. Useful for tracking where a target species has been seen.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"regionCode",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_recent_observations_for_species"
},
{
"description": "Get notable (rare or unusual) bird observations in an eBird region. eBird flags these based on regional checklist filters.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"detail": {
"description": "Detail level. 'full' is unreliable in some regions; defaults to 'simple'.",
"enum": [
"simple",
"full"
],
"type": "string"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_notable_observations"
},
{
"description": "Get recent bird observations near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"hotspot": {
"description": "Only include observations from designated hotspots. Default: false.",
"type": "boolean"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_observations"
},
{
"description": "Get notable (rare or unusual) bird observations near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_notable_observations"
},
{
"description": "Get recent observations of a specific species near a lat/lng coordinate.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"includeProvisional": {
"description": "Include observations not yet reviewed. Default: true.",
"type": "boolean"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"maxResults": {
"description": "Maximum number of results to return (1-10000). Default: 100.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"lat",
"lng",
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_nearby_observations_for_species"
},
{
"description": "Get birding hotspots in an eBird region. Returns location IDs, names, coordinates, and species totals.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"regionCode": {
"description": "eBird region or location code: country (US), subnational1 (US-NY), subnational2 (US-NY-109), or hotspot location ID (e.g. L99381).",
"type": "string"
}
},
"required": [
"regionCode"
],
"type": "object"
},
"name": "ebird__get_hotspots"
},
{
"description": "Get birding hotspots near a lat/lng coordinate within a radius.",
"inputSchema": {
"properties": {
"back": {
"description": "Number of days back to search (1-30). Default: 14.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"dist": {
"description": "Radius in kilometers from lat/lng (0-50). Default: 25.",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "ebird__get_nearby_hotspots"
},
{
"description": "Get the eBird taxonomy. Returns species codes, common names, scientific names, and taxonomic ordering. Large response \u2014 narrow with `cat` if possible.",
"inputSchema": {
"properties": {
"cat": {
"description": "Taxonomic category filter: 'species', 'issf', 'hybrid', 'slash', 'spuh', 'domestic', 'form'. Default: 'species'.",
"type": "string"
},
"fmt": {
"description": "Response format. Default: 'json'.",
"enum": [
"json",
"csv"
],
"type": "string"
},
"locale": {
"description": "Locale code for common names (e.g. 'en', 'es'). Default: 'en'.",
"type": "string"
}
},
"type": "object"
},
"name": "ebird__get_taxonomy"
},
{
"description": "Get taxonomic subforms (subspecies, hybrids, etc.) for a given species code.",
"inputSchema": {
"properties": {
"speciesCode": {
"description": "eBird species code (e.g. 'amecro' for American Crow).",
"type": "string"
}
},
"required": [
"speciesCode"
],
"type": "object"
},
"name": "ebird__get_taxonomy_forms"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": 405,
"expired_session_error": null,
"expired_session_status_code": 200,
"issues": [
"missing_protocol_header",
"bad_protocol_not_rejected",
"delete_session_unexpected",
"expired_session_not_404"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": true,
"transport": "streamable-http"
}
},
"remote_url": "https://ebird.codeforanchorage.org/mcp",
"server_card_payload": null,
"server_identifier": "github-codeforanchorage/ebird-mcp"
}
Known versions
- No versions recorded.
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| May 13, 2026 07:51:01 AM UTC | Healthy | 72.2 | 4418.8 ms | 10 |
| May 12, 2026 07:50:08 PM UTC | Healthy | 70.0 | 2429.7 ms | 10 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| May 13, 2026 07:51:01 AM UTC | Healthy | 72.2 | 2025-03-26 | public | 10 | 0 | none |
| May 12, 2026 07:50:08 PM UTC | Healthy | 70.0 | 2025-03-26 | public | 10 | 0 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| May 13, 2026 07:50:56 AM UTC | Completed | Healthy | 4418.8 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| May 12, 2026 07:50:06 PM UTC | Completed | Healthy | 2429.7 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |