Bisibility
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BISIBILITY_API_KEY | Yes | A Bisibility API key. Accepts a project key (bsb_key_live_...) or personal access token (bsb_pat_live_...). Required. | |
| BISIBILITY_BASE_URL | No | Optional. The API v1 base URL. Defaults to https://eu.bisibility.com/api/v1. For self-hosted installs, set to your API v1 root. | https://eu.bisibility.com/api/v1 |
| BISIBILITY_PROJECT_ID | No | Optional. Default project ID for project-implicit PAT tools. Must be public ID v3 format (e.g., prj_a1b2c3d4e5f6g7h8j9k0m2n3). | |
| BISIBILITY_MCP_TOOLSETS | No | Optional. Comma-separated allowlist of toolsets. Valid values: account, alerts, analytics, backlinks, checks, competitors, keywords, notifications, projects, providers, rank-history, saved-views, signals, sitemaps, system, team, tokens, webhooks. Unknown value prevents server start. When unset, all toolsets are registered. | |
| BISIBILITY_MCP_READ_ONLY | No | Optional. Set to '1', 'true', 'yes', or 'on' (case-insensitive) to disable write tools. When unset, write tools are registered. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_healthB | Check bisibility API health and configured SERP providers. |
| get_capabilitiesB | List the public bisibility API capabilities exposed for agent workflows. |
| get_cloud_import_compatibilityA | Check whether a cloud export package can be imported: returns the running app version, the latest applied migration, and the cloud-import schema versions the API accepts. Anonymous preflight endpoint; no project scope or credential needed. Use before preparing a migration to confirm the export schema is still supported. |
| get_provider_ratesA | List public provider rate cards used for rank-check cost estimates. Each rate card is either flat-priced (per-check options such as standard, priority, live) or plan-priced (monthly plans with included checks). Anonymous endpoint; no project scope needed. |
| get_cost_estimateA | Estimate the monthly rank-check cost for a keyword portfolio using the public provider rate cards. Provide the keyword count plus optional devices per keyword (1-2), locations per keyword, and check frequency (daily, weekly, or monthly). Pick a rate card with provider (defaults to dataforseo) and optionally a flat-rate option key or a plan key; see get_provider_rates for available keys. Anonymous endpoint. |
| get_meA | Get the authenticated user and all project memberships. Requires a personal access token. |
| update_meA | Update the authenticated user's display name. Requires a write PAT. |
| list_projectsA | List projects visible to the configured credential. Project keys return one project; personal access tokens return all project memberships. |
| create_projectC | Create a project. Requires a personal access token with write scope. |
| get_projectA | Get one bisibility project by project id. |
| search_locationsB | Search canonical keyword locations. Use the returned location_key verbatim when creating or updating keywords for city-level tracking. |
| update_projectB | Update a project's name or domain. At least one of name or domain is required. |
| delete_projectA | Permanently delete a project and all of its keywords, rank history, and settings. This cannot be undone. Use only after the user confirms deletion. |
| get_project_defaultsA | Get the effective rank-check schedule and SERP market defaults for a project. The response includes serp_depth, serp_stop_on_match, and source: explicit means the market was configured, derived means it was inferred from existing keywords, and fallback means the instance default was used. |
| update_project_defaultsA | Update the project default rank-check schedule and SERP market. The schedule is replaced as a whole: omitted schedule fields reset to their defaults (jitter 60, timezone UTC, no cron). Provide country and device together, or a location_key, to move the default SERP market. Use search_locations and pass its location_key verbatim for city-level tracking. |
| list_keywordsB | List keywords for a project with pagination, search, filters, and sorting. |
| list_ranked_keyword_suggestionsC | Paid provider lookup on the project's own DataForSEO account, about $0.02 per 100-keyword page on a cache miss. Results are cached for 12 hours and shared with the UI and API. already_tracked marks keywords the project tracks. |
| research_keywordsA | Requires API write scope. Paid keyword research uses the project's own DataForSEO account. When cost matters, call with estimate_only first for a free dry run, then use max_cost_cents as a best-effort request guard. Approximate per-source pricing comes from the current rate card exposed by get_provider_rates. Send one seed per call. Results are cached for 12 hours and shared with the API and future UI. Clickstream-refined volumes double provider cost. already_tracked marks keywords the project tracks. |
| analyze_backlinksA | Requires API write scope because cache misses spend the project's own DataForSEO budget. Returns summary metrics, 12-month history, and per-link rows with new or lost status. Snapshots are cached for 24 hours. Call with estimate_only first for a free dry run, then use max_cost_cents as a best-effort request guard. Compute aggregate views from rows and treat them as "within fetched rows" only. |
| load_more_backlink_rowsA | Requires API write scope. Extends the current unexpired backlinks snapshot at the per-100-row provider rate. Returns 409 snapshot_expired when no current snapshot exists; run analyze_backlinks first. |
| get_keyword_metricsA | Requires API write scope. Paid metrics lookup uses the project's own DataForSEO account. When cost matters, call with estimate_only first for a free dry run, then use max_cost_cents as a best-effort request guard. Approximate pricing per 100 fetched keywords comes from the current rate card exposed by get_provider_rates. Batches contain up to 700 keywords and cache each keyword for 12 hours, shared with the API and future UI. Clickstream-refined volumes double provider cost. |
| add_keywordsA | Add one or more keywords to a project, optionally with tags, target URL, and schedule. Use search_locations and pass its location_key verbatim for city-level tracking. |
| get_keywordB | Get a keyword and its latest rank position by keyword id. |
| update_keywordA | Update keyword metadata such as text, country, device, target URL, tags, or schedule. Use search_locations and pass its location_key verbatim for city-level tracking. |
| set_keyword_target_urlB | Set or clear the target URL used when evaluating a keyword ranking. |
| delete_keywordA | Delete one keyword by keyword id. Use only after the user confirms deletion. |
| bulk_update_keywordsB | Bulk mutate keywords by adding tags, removing tags, setting frequency, setting target URL, or deleting. |
| run_rank_checkA | Run a provider-backed rank check for one keyword. Requires write access and may incur provider cost. Ask for explicit user approval immediately before calling; this server cannot enforce the client's confirmation UI. By default the check runs synchronously and returns the completed result. Set async to true to enqueue the check and return a running rank check immediately; poll it with get_rank_check_result. |
| get_rank_historyB | List historical rank checks for a keyword with date, status, and pagination filters. |
| export_rank_historyA | Export project rank history as cursor-paginated JSON for reports and analysis. For full streamed CSV dumps, use the REST endpoint directly. |
| list_sitemap_monitorsA | List the project sitemap monitor, including its status and latest snapshot summary. |
| enable_sitemap_monitorA | Enable the project sitemap monitor. The next scheduled worker sync fetches the sitemap; enabling does not fetch immediately. |
| disable_sitemap_monitorA | Disable the project sitemap monitor while retaining its existing snapshots. |
| get_rank_check_resultB | Get one rank check result by check id. |
| create_signalA | Ingest a signal for the key-scoped project: an external event such as a deploy, CMS content change, or custom API event that may explain ranking movements. source must be deploy, cms, or api; type is a dot-separated identifier such as "deploy.completed" or "cms.page_updated". Optionally attach an ISO-8601 happened_at (defaults to now), a related keyword_id, an http(s) url, a severity (info, warning, or critical), and a JSON payload of up to 8KB. |
| list_signalsA | List signals for a project, newest first. Filter by source (including system sources such as rank_tracker or search_analytics), exact type, and a happened-at date range via from/to ISO-8601 date-times, with cursor pagination. |
| list_traffic_snapshotsA | List stored page traffic snapshots collected from the project's own connected analytics accounts, filtered by date range and optional page paths. |
| list_search_performance_query_statsB | Fetch live query statistics from one of the project's own connected search-performance accounts. Provider rate limits and reauthorization rules apply. |
| sync_project_trafficB | Synchronize traffic snapshots from the project's own connected analytics accounts now. Provider rate limits and connection authorization rules apply. |
| list_api_keysA | List API keys for the authenticated project, including revoked keys. |
| create_api_keyA | Create a new API key for the authenticated project. The raw token is returned once in the response and cannot be retrieved again; store it securely. |
| revoke_api_keyA | Revoke an API key by key id. Revocation is immediate and cannot be undone; revoking the key this server is configured with locks the server out. Use only after the user confirms revocation. |
| list_project_api_keysB | List API keys scoped to a specific project, including revoked keys. |
| create_project_api_keyA | Create a project-scoped API key for CI or automation. The raw key is returned once. |
| list_personal_tokensB | List the user's personal access tokens. Requires an admin PAT. |
| create_personal_tokenA | Create a personal access token. The raw account-wide token is returned once. Requires an admin PAT. |
| revoke_personal_tokenB | Revoke a personal token by id, or pass "current" to revoke the configured token. |
| list_webhooksB | Webhook endpoints: list the per-project HTTP URLs that notifications and events are delivered to. |
| create_webhookB | Create a webhook endpoint. The HMAC secret is write-only. |
| update_webhookB | Update a webhook endpoint or rotate its write-only HMAC secret. |
| delete_webhookB | Delete a webhook endpoint. Requires admin access. |
| list_alert_rulesB | Alert rules: list the per-project conditions that decide when a notification fires. |
| create_alert_ruleC | Create an alert rule for project rank changes, thresholds, SERP features, or competitors. |
| update_alert_ruleA | Update an alert rule by rule id. The API replaces the whole rule configuration, so name and condition_type are required even when updating a single field. |
| delete_alert_ruleA | Delete an alert rule by rule id. Use only after the user confirms deletion. |
| list_triggered_alertsC | List triggered alerts for a project. |
| mute_triggered_alertA | Mute one firing alert for 24 hours. This changes shared alert state for the whole project team. |
| mark_project_alerts_readA | Mark every firing alert in the project as read for the whole project team. |
| list_team_membersC | List team members for a project. |
| list_team_invitesA | List pending team invites for a project. |
| create_team_inviteA | Invite a user to a project team with an admin, member, or viewer role. |
| revoke_team_inviteB | Revoke a pending project team invite. |
| resend_team_inviteB | Resend a pending team invitation and replace its expiration and token. |
| update_team_member_roleA | Change a non-owner project member role to admin, member, or viewer. Ownership transfer remains UI-only. |
| remove_team_memberA | Permanently remove a non-owner project member. Confirm the user's intent before calling this tool. |
| list_providersA | List provider connection options and status for a project. |
| connect_providerB | Connect or update credentials for a project provider. SERP providers are dataforseo and serpapi; analytics providers are ga4, gsc, and plausible. Self-hosted providers such as Plausible accept an optional credentials.endpoint base URL. |
| test_provider_connectionA | Test provider credentials or the saved provider connection. Self-hosted providers such as Plausible accept an optional credentials.endpoint base URL. |
| update_provider_settingsC | Update provider settings such as enabled state, priority, or primary status. |
| set_provider_enabledB | Enable or disable a provider for a project. |
| set_provider_priorityB | Set provider priority for a project. Lower numbers are preferred first. |
| set_primary_providerA | Set or clear a provider as the primary project provider. |
| disconnect_providerA | Disconnect a provider from a project. Use only after the user confirms deletion. |
| list_saved_keywordsA | List keyword ideas saved without rank tracking for a project. |
| create_saved_keywordsB | Save keyword ideas without starting paid rank tracking. Keywords already tracked or saved are skipped. |
| delete_saved_keywordA | Delete one saved keyword. Use only after the user confirms deletion. |
| list_saved_viewsB | List saved keyword views for a project. |
| create_saved_viewA | Create a saved keyword view for a project. Known country filter values: 'all' or a supported market country code such as us, gb, ca, au, de, fr, es, it, nl, se, pl. Known serp filter values: ai, featured, image, paa, sitelinks, video. The API validates both against its data-driven market list. |
| delete_saved_viewA | Delete a project saved view. Use only after the user confirms deletion. |
| list_competitorsC | List tracked competitors, market data, and suggestions for a project. |
| add_competitorB | Add a tracked competitor domain to a project. |
| remove_competitorC | Remove a tracked competitor from a project. |
| get_notification_preferencesA | Notification channel switches: get which channels (email, Slack, webhook) are turned on for the project. Returns no addresses or URLs; use list_webhooks for where notifications are sent. |
| update_notification_preferencesA | Notification channel switches: turn the project's notification channels (email, Slack, webhook) on or off. Does not create or change webhook endpoints; use create_webhook or update_webhook for those. |
| list_migration_tokensB | List active migration tokens for a project. |
| mint_migration_tokenB | Mint a migration token for a project. |
| revoke_migration_tokenB | Revoke a project migration token. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CorgiCorner/bisibility-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server