Not in the top 1,000 by GitHub stars

brilliantdirectories/brilliant-directories-mcp

Official MCP server for Brilliant Directories — manage members, posts, leads, reviews, pages, and more from any AI agent. OpenAPI 3.1 spec included.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

008da58c09d8 → 008da58c09d8

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 008da58c09d8

No earlier version was observed for comparison.

Compare on GitHub

bd-skill-content/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

008da58c09d8 → 008da58c09d8

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 008da58c09d8

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 008da58c09d8504618c54a2f63c223dc4730c4ce

git clone --filter=blob:none --no-checkout https://github.com/brilliantdirectories/brilliant-directories-mcp.git .hotskills/brilliantdirectories-brilliant-directories-mcp && git -C .hotskills/brilliantdirectories-brilliant-directories-mcp checkout --detach 008da58c09d8504618c54a2f63c223dc4730c4ce # Copy each selected skill directory from .hotskills/brilliantdirectories-brilliant-directories-mcp into .claude/skills/<skill-name>/
19GitHub stars
0stars in 7 days
2skills in this repository
5commits in 30 days

Heat

1.4
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 29, 202619

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

brilliant-directories

When your agent uses it

Manage a Brilliant Directories (BD) membership or directory website via its REST API. Use when the user mentions their BD site, their directory, their members/leads/posts, managing site content, or automating anything on their Brilliant Directories platform.

What it loads into context

Frontmatter

133 tokens

Always available to the agent

SKILL.md

5,694 tokens

When the skill is activated

Reference documents

470,801 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. What having this skill active means for your user
  2. Ground truth
  3. When to activate
  4. Two ways to reach the API (agent-agnostic)
  5. Tool / operation discovery (future-proof rule)
  6. Core conventions (stable across all resources)
  7. Canonical multi-step pattern
  8. Things to always do
  9. Things to never do
  10. BD terminology glossary
  11. Reference URLs
  12. Installation recap for the user
  13. Bundled growth skills

Scripts executed separately

  • Dockerfile
  • mcp/index.js
  • mcp/package.json
  • scripts/build-skill-zip.js
  • scripts/extract-instructions.js
  • scripts/flatten.py
  • scripts/schema-drift-check.js
  • scripts/skill-ref-check.py
  • scripts/swap-instructions.js
  • scripts/verify-instructions-match.js

Files

  • .claude-plugin/marketplace.jsonasset651 bytes
  • .claude-plugin/plugin.jsonasset885 bytes
  • .dockerignoreasset142 bytes
  • .gitattributesasset267 bytes
  • .github/workflows/release.ymlasset5,876 bytes
  • .gitignoreasset1,248 bytes
  • .mcp.jsonasset233 bytes
  • CHANGELOG.mddoc1,592,094 bytes
  • CONTRIBUTING.mddoc1,925 bytes
  • Dockerfileruns523 bytes
  • LICENSEasset1,078 bytes
  • README.mddoc59,064 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • SKILL.mdcore24,344 bytes
  • docs/api-categories.mddoc3,622 bytes
  • docs/api-clicks.mddoc936 bytes
  • docs/api-data-types.mddoc2,529 bytes
  • docs/api-email-templates.mddoc2,277 bytes
  • docs/api-form-fields.mddoc1,103 bytes
  • docs/api-forms.mddoc829 bytes
  • docs/api-lead-matches.mddoc1,177 bytes
  • docs/api-leads.mddoc1,581 bytes
  • docs/api-membership-plans.mddoc1,459 bytes
  • docs/api-menu-items.mddoc1,045 bytes
  • docs/api-menus.mddoc932 bytes
  • docs/api-pages.mddoc7,765 bytes
  • docs/api-portfolio-groups.mddoc3,777 bytes
  • docs/api-portfolio-photos.mddoc1,838 bytes
  • docs/api-post-types.mddoc1,233 bytes
  • docs/api-posts.mddoc3,222 bytes
  • docs/api-redirects.mddoc2,821 bytes
  • docs/api-reviews.mddoc1,118 bytes
  • docs/api-services.mddoc2,756 bytes
  • docs/api-smart-lists.mddoc1,097 bytes
  • docs/api-tag-groups.mddoc703 bytes
  • docs/api-tag-relationships.mddoc778 bytes
  • docs/api-tag-types.mddoc659 bytes
  • docs/api-tags.mddoc613 bytes
  • docs/api-unsubscribe.mddoc959 bytes
  • docs/api-user-meta.mddoc7,099 bytes
  • docs/api-user-photos.mddoc789 bytes
  • docs/api-user-services.mddoc2,568 bytes
  • docs/api-users.mddoc13,242 bytes
  • docs/api-widgets.mddoc6,051 bytes
  • glama.jsonasset117 bytes
  • mcp/LICENSEasset1,078 bytes
  • mcp/README.mddoc59,064 bytes
  • mcp/index.jsruns356,294 bytes
  • mcp/openapi/bd-api.jsonasset679,716 bytes
  • mcp/openapi/mcp-instructions.mddoc153,480 bytes
  • mcp/package-lock.jsonasset40,346 bytes
  • mcp/package.jsonruns1,462 bytes
  • plugin.jsonasset745 bytes
  • scripts/build-skill-zip.jsruns3,349 bytes
  • scripts/extract-instructions.jsruns1,981 bytes
  • scripts/flatten.pyruns5,164 bytes
  • scripts/schema-drift-check.jsruns42,807 bytes
  • scripts/skill-reading-order.jsonasset292 bytes
  • scripts/skill-ref-check.pyruns3,452 bytes
  • scripts/swap-instructions.jsruns1,456 bytes
  • scripts/verify-instructions-match.jsruns1,693 bytes
  • server.jsonasset1,141 bytes
Read SKILL.md

# Brilliant Directories

Brilliant Directories (BD) is the SaaS platform behind 50,000+ membership and directory websites. This skill gives you programmatic control over a BD-powered site via its REST API.

## What having this skill active means for your user

You can do, without them opening the BD admin UI:

- **Member ops** — create, bulk import, update, search, delete members; auto-fetch profile photos/logos/cover images from external URLs (web-scrapes, CSVs, cross-site migrations); manage categories, credits, and tags
- **Content ops** — write blog articles, events, job listings, coupons, video posts, photo albums, property/product listings; edit the homepage, landing pages, about/contact, SEO meta tags, social Open Graph tags
- **Taxonomy ops** — build out the site's 3-tier category hierarchy (Top Category → Sub Category → Sub-Sub Category) from scratch or inline while creating members
- **Inbox & engagement** — read lead inbox, moderate reviews, trigger lead matching to send notification emails to eligible members
- **Site config** — edit navigation menus, form fields, email templates, widgets, smart lists, 301 redirects, membership plans
- **Billing introspection** — pull a member's invoice history and subscription status (read-only)
View the complete source on GitHub

Skills included

  • brilliant-directories
  • bd-skill-content

Repository facts

License
MIT
Created
Apr 18, 2026
Last pushed
Nov 3, 2026
Forks
5
Open issues
1
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 38 notes
  • CHANGELOG.md:1 Analysis incomplete: file exceeds text byte budget
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • mcp/openapi/bd-api.json:1614 [Credential-related source omitted]
  • mcp/openapi/bd-api.json:1612 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:1613 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:2042 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:2043 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:2044 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:4163 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:4161 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:4162 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:5227 Analysis incomplete: physical or joined line exceeds character limit
  • mcp/openapi/bd-api.json:5225 Analysis incomplete: physical or joined line exceeds character limit
Show all 1,258 signals by file

.claude-plugin/plugin.json

  • Network accessline 6
    "author": {     "name": "Brilliant Directories",     "url": "https://github.com/brilliantdirectories"
  • Network accessline 7
    "name": "Brilliant Directories",     "url": "https://github.com/brilliantdirectories"   },
  • Network accessline 8
    "url": "https://github.com/brilliantdirectories"
  • Network accessline 9
    },   "homepage": "https://www.brilliantdirectories.com",   "repository": "https://github.com/brilliantdirectories/brilliant-directories-mcp",
  • Network accessline 10
    "homepage": "https://www.brilliantdirectories.com",
  • Network accessline 11
    "repository": "https://github.com/brilliantdirectories/brilliant-directories-mcp",

.dockerignore

  • Access to secretsline 2
    [Credential-related source omitted]

.github/workflows/release.yml

  • Network accessline 45
    with:           node-version: "lts/*"           registry-url: "https://registry.npmjs.org"
  • Network accessline 47
    registry-url: "https://registry.npmjs.org"
  • Network accessline 85
    - name: Install mcp-publisher         run: |           curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm
  • Network accessline 87
    curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
  • Network accessline 127
    --notes "Auto-created on tag push. See [CHANGELOG.md](https://github.com/brilliantdirectories/brilliant-directories-mcp/blob/main/CHANGELOG.md) for release notes." \

.gitignore

  • Access to secretsline 4
    [Credential-related source omitted]

.mcp.json

  • Network accessline 3
    "brilliant-directories": {       "type": "http",       "url": "https://brilliantmcp.com",
  • Network accessline 4
    "type": "http",       "url": "https://brilliantmcp.com",       "headers": {
  • Network accessline 5
    "url": "https://brilliantmcp.com",
  • Access to secretsline 7
    [Credential-related source omitted]

CHANGELOG.md

  • Network accessline 5
    The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
  • Network accessline 6
    and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  • Network accessline 2297
    - **Jobs research-inversion seam closed (2 turns/run).** The v6.58.241 witness run proved the census machinery but bought two turns from one seam: citation sources and the winner's application-page fetch fired AFTER the pre-create batch, an
  • Network accessline 3712
    ### Changed - **Stage 1 create-schema pre-load reworded to be path-neutral and non-contradictory.** The 6.58.13 wording said "drop straight into their `mcp_call`s" — but `mcp_call` is the Butler worker's tool-invocation wrapper, absent on t
  • Network accessline 3713
    - **Stage 1 create-schema pre-load reworded to be path-neutral and non-contradictory.** The 6.58.13 wording said "drop straight into their `mcp_call`s" — but `mcp_call` is the Butler worker's tool-invocation wrapper, absent on the interacti
  • Network accessline 3778
    - **`getSiteInfo` URLs align to the connection's scheme on http-only sites** — BD's own site-info builder claims `https://` in `full_url` and `brand_images_absolute` even for sites with no SSL (mixed with an http `main_directory_url_absolut
  • Network accessline 3936
    - **Admin-edit URL scheme now mirrors the customer site's scheme.** Both `_admin_edit_url` builders previously hardcoded `https://ww2.managemydirectory.com`. The centralized admin host is unchanged, but the scheme now follows the site's own
  • Network accessline 5117
    1. **Drop `.webp` from feature-image format list.** Was: `must end in .jpg/.jpeg/.png/.webp`. Now: `must end in .jpg/.jpeg/.png (WebP/GIF/AVIF skipped pre-tool per the same rule)`. 2. **Replace stale Pexels recipe with `getImageDimensions` 
  • Network accessline 5118
    2. **Replace stale Pexels recipe with `getImageDimensions` pointer.** Was: `source via https://www.pexels.com/search/<term>/?orientation=landscape`. Now: `verify orientation via getImageDimensions per Rule: Image dimensions before commit`.
  • Network accessline 6001
    Live debug: agent tried twice to swap a post's feature image. Both `updateSingleImagePost post_id=N post_image=<NEW URL> auto_image_import=1` calls returned HTTP 200 and updated `revision_timestamp`, but the local file `pphoto-<post_id>.web
  • Network accessline 6122
    Live run: agent generated audit summary with `https://ww2.managemydirectory.com/admin/posts/edit/297&newsite=60029` — wrong path. Corpus `Rule: Post admin URLs` (mcp-instructions.md line 503) carries the canonical `admin/viewPosts.php?searc
  • Network accessline 6167
    Second live run after v6.49.53 still failed dedup, BUT for a different reason: agent ran three list-tool calls (the v6.49.52-53 mandatory-execution gates worked), but it paraphrased the queries WRONG. Used `property=post_image` instead of `
  • Network accessline 6270
    Stress test also confirmed cross-table dedup is load-bearing in practice: URL `https://images.pexels.com/photos/1552242/pexels-photo-1552242.jpeg` returned 0 rows from `listSingleImagePosts` (clean in data_posts) but 5 hits in `list_seo` he
  • Network accessline 6319
    - **Single-image post types**: `listSingleImagePosts property=original_image_url property_value=<exact URL> property_operator==` — 0 rows = use, ≥1 row = pick another. - **Multi-image post types** (gallery photos in `users_portfolio`): `lis
  • Network accessline 6320
    - **Multi-image post types** (gallery photos in `users_portfolio`): `listMultiImagePostPhotos property=original_image_url property_value=<URL> property_operator==` — same logic. - **Exact match** on the bare canonical Pexels URL: `https://i
  • Network accessline 6321
    - **Exact match** on the bare canonical Pexels URL: `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg` (or `.png`/`.webp`). No query string.
  • Network accessline 6428
    **Admin URL invention bug.** Real-run agent fabricated `https://ww2.managemydirectory.com/admin/post/edit/186?newsite=60029` for the audit summary — that route does not exist. Root cause: audit template referenced `<admin_edit_url>` but cor
  • Network accessline 6430
    Added corpus `Rule: Post admin URLs` mirroring the email-template pattern: `https://ww2.managemydirectory.com/admin/viewPosts.php?search[value]=<post_id>&data_type=<data_type>&data_id=<data_id>&newsite=<website_id>`. Applies to all single-i
  • Instruction override signalline 7147
    - Skip confirmation prompts on read-only tools (`get*`, `list*`, `search*`, `render*`, `verifyToken`, `loginUser`, `getBrandKit`, `getSiteInfo`)
  • Network accessline 7496
    - Dead anchor `#openapi-spec` (line 729) → corrected to `#stable-asset-urls`. - TOC missing three sections (Field Discovery, Stable asset URLs, Security) → added. - Curl section auth headers unexplained → added a one-line note: direct-to-BD
  • Network accessline 7497
    - TOC missing three sections (Field Discovery, Stable asset URLs, Security) → added. - Curl section auth headers unexplained → added a one-line note: direct-to-BD calls only need `X-Api-Key`; the Worker path needs both because `X-BD-Site-UR
  • Network accessline 7498
    - Curl section auth headers unexplained → added a one-line note: direct-to-BD calls only need `X-Api-Key`; the Worker path needs both because `X-BD-Site-URL` is the routing key.
  • Network accessline 7499
    - Requirements: HTTP-only sites (`http://mysite.com`) now listed as supported. Trailing slash kept as ❌ — defensive guidance even though the Worker strips it (cleaner config + works on non-Worker paths).
  • Network accessline 7517
    3. **"Verify Node works: open Command Prompt..." paragraph** removed from the Advanced block opener (same reason). 4. **Reboot dropped from install steps** in 9 places. It's not actually required for most users — fully quitting and reopenin
  • Network accessline 7518
    4. **Reboot dropped from install steps** in 9 places. It's not actually required for most users — fully quitting and reopening the AI app is sufficient. Relocated to Troubleshooting as a "still seeing `spawn npx ENOENT`?" recovery step wher
  • Network accessline 7519
    5. **n8n callout heading** → `Why https://brilliantmcp.com/sse?` (was `Why brilliantmcp.com?`) for consistency with the URL form n8n actually uses.
  • Network accessline 7547
    Also tightened the URL guidance throughout — agents and customers should supply the full canonical URL (`https://`, exact host, no trailing slash) rather than relying on Worker normalization. The Worker still normalizes defensively.
  • Network accessline 7557
    Also struck the "accepts the URL with or without `https://` — Worker normalizes it" reassurance from the README. Customers should provide the full canonical URL (`https://`, exact host, no trailing slash) per the Requirements section. The W
  • Network accessline 7567
    The Claude Desktop section advertised a "🚀 Easy (no Node.js required)" config block using `url` + `headers` shape pointing at `https://brilliantmcp.com`. Claude Desktop's `claude_desktop_config.json` does NOT accept that shape — it produces
  • Network accessline 7588
    A customer reported MCP connection failure when the configured site URL contained a trailing slash (e.g. `https://www.example.com/`). The bug class was wider than the ticket: URL handling was scattered across two parallel implementations — 
  • Network accessline 7590
    This release consolidates URL normalization to a single hoisted `normalizeUrl()` helper applied unconditionally before any code-path branching. It does exactly one thing: trim whitespace and strip trailing slashes. Whatever protocol the use
  • Network accessline 7592
    Verified end-to-end against two real customer sites (one HTTPS, one HTTP-only) — all input shapes (`https://site.com/`, `https://site.com`, `http://site.com/`, `http://site.com`, `https://site.com///`, with leading/trailing whitespace) now 
  • Network accessline 7618
    v6.43.0 added a wrapper-side `user_id` → `client_id` translation under the assumption that BD's billing endpoints only accepted `client_id`. That assumption was wrong. BD's documented behavior — re-verified live via direct curl — is that bo
  • Network accessline 7637
    Post-v6.42.5 stress test surfaced bugs and rough edges across read paths, guards, and lifecycle ops. This release closes the actionable items, with no behavior change to anything that was working. Core fixes verified live via direct curl pr
  • Network accessline 7673
    `config.domain` was never assigned in the npm package despite multiple helpers (`getPostTypesCached`, `getWebsiteInfoCached`, `_readLinkedPostMeta`, etc.) accepting it as a parameter. Existing helpers had been silently building `https://und
  • Network accessline 7871
    5-minion stress test on v6.41.94 found 3 real wrapper holes (one root cause). All catchable with cheap synchronous arg-shape checks — no BD probe, no `fetch()`, no `waitUntil` (the cancellation trap that drove the v6.41.83-89 rabbit hole). 
  • Network accessline 7879
    The validators removed in v6.41.90 (`validateFieldNameUnique`, `validateSubmitCount`) failed because they did out-of-band `fetch()` calls to BD that Cloudflare cancelled via `waitUntil`. These three are pure local checks on the args dict — 
  • Network accessline 7985
    Both validators required pre-fetching the parent form's existing field list via BD's `listFormFields` endpoint, then comparing against the incoming write. The pre-fetch (`_listFormFieldsByFormName`) proved fragile in production: the unbound
  • Network accessline 8041
    ### Fixed — Form-validator helpers: 5s bounded fetch (root cause of "wrote despite error" pattern)
  • Network accessline 8049
    The validator helpers (`_listFormFieldsByFormName`, `_getFormFieldRecordById`) were issuing unbounded `await fetch()` calls. When BD responded slowly to the filter query, the Worker's invocation budget expired before the fetch resolved. Clo
  • Network accessline 8053
    Fix: both helpers now wrap their `fetch()` in a 5s `AbortController` matching the existing pattern at `_validateProfileSearchResultsSegments` (line ~3902) and `reserveSiteUrlSlug` (line ~4034). 5s is comfortable for a normal listFormFields 
  • Network accessline 8085
    **README — Codex Desktop section** (root + mcp READMEs): - URL was `https://brilliantmcp.com/mcp` → corrected to `https://brilliantmcp.com` (no `/mcp` path; Codex's MCP client 404s on the wrong path).
  • Network accessline 8086
    - URL was `https://brilliantmcp.com/mcp` → corrected to `https://brilliantmcp.com` (no `/mcp` path; Codex's MCP client 404s on the wrong path).
  • Network accessline 8239
    - **`.claude-plugin/plugin.json`** (new) — Claude Code plugin manifest. Required for Claude Code's plugin system to detect this repo as a plugin source. - **`.claude-plugin/marketplace.json`** (new) — marketplace registration manifest. Lets
  • Network accessline 8241
    - **`.mcp.json`** (changed) — replaced npx-stdio config with Streamable HTTP transport pointing at the public hosted endpoint (`https://brilliantmcp.com`) with per-user auth headers (`X-Api-Key`, `X-BD-Site-URL`). No Node.js install require
  • Network accessline 8498
    Every successful `createWebPage` / `updateWebPage` response now carries an `_admin_edit_url` field — a centralized-admin deep-link to the WebPage editor for the seo_id just written. Format: `https://ww2.managemydirectory.com/admin/contentMa
  • Network accessline 9348
    Make.com shipped an MCP Client (Open Beta) that connects to remote MCP servers — see https://apps.make.com/mcp-client. Previous README lumped Make and Zapier together with HTTP-only guidance, predating Make's MCP Client release.
  • Network accessline 9352
    - **Make.com** — full setup steps (Module → New MCP Server → URL `https://brilliantmcp.com` → API Key field). Flagged the known limitation: Make's UI exposes only one token field but our Worker requires both `X-Api-Key` and `X-BD-Site-URL` 
  • Network accessline 9427
    The centralized BD admin (`ww2.managemydirectory.com`) needs a tenant scope to load the right customer's email template. URL pattern updated to: `https://ww2.managemydirectory.com/admin/emailTemplates.php?faction=edit&email=<email_id>&newsi

CONTRIBUTING.md

  • Network accessline 9
    Open an issue at https://github.com/brilliantdirectories/brilliant-directories-mcp/issues and include:
  • Network accessline 35
    git clone https://github.com/brilliantdirectories/brilliant-directories-mcp.git
  • Network accessline 39
    # run the server with your BD credentials BD_API_URL=https://your-site.com \
  • Network accessline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 49
    Be respectful. Keep discussion technical. We follow the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) standard.

Dockerfile

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    [Credential-related source omitted]
  • Network accessline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    ENV BD_API_URL=https://example.com

README.md

  • Network accessline 3
    [![npm version](https://img.shields.io/npm/v/brilliant-directories-mcp?color=blue&label=npm)](https://www.npmjs.com/package/brilliant-directories-mcp)
  • Network accessline 4
    [![license](https://img.shields.io/github/license/brilliantdirectories/brilliant-directories-mcp?color=green)](LICENSE)
  • Network accessline 5
    [![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)
  • Network accessline 15
    1. **Your BD site URL.** Use the full canonical URL exactly as it loads in a browser — include `https://` (or `http://` if your site has no SSL), include `www.` if your site uses it, no trailing slash.
  • Network accessline 16
    - ✅ `https://www.mysite.com` (most BD sites)
  • Network accessline 17
    - ✅ `https://mysite.com` (only if your site has no `www.`)
  • Network accessline 18
    - ✅ `http://mysite.com` (HTTP-only sites — protocol respected)
  • Network accessline 19
    - ❌ `mysite.com` (missing protocol)    - ❌ `https://mysite.com/` (trailing slash)    - ❌ `https://mysite.com` if the site actually serves at `www.mysite.com` — use the form your site canonically responds at
  • Network accessline 20
    - ❌ `https://mysite.com/` (trailing slash)
  • Network accessline 21
    - ❌ `https://mysite.com` if the site actually serves at `www.mysite.com` — use the form your site canonically responds at
  • Network accessline 26
    <a href="https://support.brilliantdirectories.com/support/solutions/articles/12000088768" target="_blank" rel="noopener noreferrer">Full walkthrough: How to Create an API Key</a>.
  • Network accessline 28
    3. **Node.js — only for the Advanced path** (see below). Not needed for the Easy path. If you need it, one-time install from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` to down
  • Network accessline 64
    - [Zapier](#zapier)   - [Abacus.AI (ChatLLM Agent)](#abacusai-chatllm-agent)   - [curl / any HTTP client](#curl--any-http-client)
  • Network accessline 65
    - [Abacus.AI (ChatLLM Agent)](#abacusai-chatllm-agent)   - [curl / any HTTP client](#curl--any-http-client) - [What you can ask the AI](#what-you-can-ask-the-ai)
  • Network accessline 66
    - [curl / any HTTP client](#curl--any-http-client)
  • Network accessline 88
    - **🚀 Easy config block** — points at our hosted MCP at `https://brilliantmcp.com`. No Node.js, no install, no terminal. Starts working the moment you save and restart your AI app.
  • Network accessline 91
    **Needs Node.js installed first** — get it from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` to download, then click `Windows Installer (.msi)` — Mac: `macOS Installer` — and DO
  • Network accessline 101
    "mcpServers": {     "brilliant-directories": {       "url": "https://brilliantmcp.com",
  • Network accessline 102
    "brilliant-directories": {       "url": "https://brilliantmcp.com",       "headers": {
  • Network accessline 103
    "url": "https://brilliantmcp.com",
  • Network accessline 104
    [Credential-related source omitted]
  • Network accessline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Network accessline 106
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 113
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]
  • Network accessline 123
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (the Advanced path runs an `npx` command on your machine): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Wind
  • Network accessline 124
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 142
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 143
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 144
    "--url", "https://www.your-site.com"
  • Network accessline 161
    > ⚠<U+FE0F> **Windows users:** install Claude Desktop from <a href="https://claude.ai/download" target="_blank" rel="noopener noreferrer">claude.ai/download</a>, NOT the Microsoft Store (the Store version sandboxes the config file).
  • Network accessline 163
    > **Banner saying "Tool result could not be submitted… connection interrupted"?** Cosmetic UI bug across every MCP connector ([anthropics/claude-code #51874](https://github.com/anthropics/claude-code/issues/51874)) — your tools still work. 
  • Network accessline 165
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 166
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 194
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 195
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Network accessline 196
    "--url", "https://www.your-site.com"
  • Network accessline 203
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]
  • Network accessline 236
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Network accessline 238
    "--url", "https://www.your-site.com"
  • Network accessline 245
    [Credential-related source omitted]
  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 247
    > **Paste your final file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a> before restarting to ensure correct formatting.**
  • Network accessline 263
    > **Not connected?** Check **Settings → Developer → MCP servers** for the error. Common causes: > - JSON typo — paste your file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a>
  • Network accessline 264
    > - JSON typo — paste your file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a>
  • Network accessline 265
    > - Wrong API key, or URL missing `https://` / has trailing slash
  • Network accessline 281
    1. **Node.js** — from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` → `Windows Installer (.msi)` or `macOS Installer` → double-click to install, click Next through the prompts).
  • Access to secretsline 301
    [Credential-related source omitted]
  • Network accessline 308
    [Credential-related source omitted]
  • Access to secretsline 308
    [Credential-related source omitted]
  • Access to secretsline 309
    [Credential-related source omitted]
  • Network accessline 310
    --header "X-BD-Site-URL: https://www.your-site.com"
  • Network accessline 313
    [Credential-related source omitted]
  • Access to secretsline 313
    [Credential-related source omitted]
  • Network accessline 318
    [Credential-related source omitted]
  • Access to secretsline 318
    [Credential-related source omitted]
  • Network accessline 347
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before editing the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 348
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 365
    "brilliant-directories-mcp@latest",            "--api-key", "ENTER_API_KEY",            "--url", "https://www.your-site.com"
  • Network accessline 366
    [Credential-related source omitted]
  • Access to secretsline 366
    [Credential-related source omitted]
  • Network accessline 367
    "--url", "https://www.your-site.com"
  • Network accessline 374
    [Credential-related source omitted]
  • Access to secretsline 374
    [Credential-related source omitted]
  • Network accessline 383
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Network accessline 401
    **1. Download Codex Desktop** from <a href="https://chatgpt.com/codex/get-started/" target="_blank" rel="noopener noreferrer">chatgpt.com/codex/get-started</a> and install it.
  • Network accessline 412
    |---|---| | **Name** | `Brilliant Directories` (or any label) | | **URL** | `https://brilliantmcp.com` |
  • Network accessline 413
    | **Name** | `Brilliant Directories` (or any label) | | **URL** | `https://brilliantmcp.com` | | **Bearer token env var** | *leave empty — don't touch* |
  • Network accessline 414
    | **URL** | `https://brilliantmcp.com` |
  • Network accessline 418
    | *Click **+ Add header** to add the second row* | | | **Headers** — Key (row 2) | `X-BD-Site-URL` | | **Headers** — Value (row 2) | `https://www.your-site.com` |
  • Network accessline 419
    | **Headers** — Key (row 2) | `X-BD-Site-URL` | | **Headers** — Value (row 2) | `https://www.your-site.com` | | **Headers from environment variables** | *leave empty — don't touch* |
  • Network accessline 420
    | **Headers** — Value (row 2) | `https://www.your-site.com` |
  • Network accessline 427
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 428
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 444
    | **Arguments** — Row 4 | your BD API key | | **Arguments** — Row 5 | `--url` | | **Arguments** — Row 6 | `https://www.your-site.com` |
  • Network accessline 445
    | **Arguments** — Row 5 | `--url` | | **Arguments** — Row 6 | `https://www.your-site.com` | | **Environment variables** | *leave empty — don't touch* |
  • Network accessline 446
    | **Arguments** — Row 6 | `https://www.your-site.com` |
  • Network accessline 479
    "mcpServers": {     "brilliant-directories": {       "serverUrl": "https://brilliantmcp.com",
  • Network accessline 480
    "brilliant-directories": {       "serverUrl": "https://brilliantmcp.com",       "headers": {
  • Network accessline 481
    "serverUrl": "https://brilliantmcp.com",
  • Network accessline 482
    [Credential-related source omitted]
  • Network accessline 483
    [Credential-related source omitted]
  • Access to secretsline 483
    [Credential-related source omitted]
  • Network accessline 484
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 493
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 494
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 508
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 509
    [Credential-related source omitted]
  • Access to secretsline 509
    [Credential-related source omitted]
  • Network accessline 510
    "--url", "https://www.your-site.com"
  • Network accessline 517
    [Credential-related source omitted]
  • Access to secretsline 517
    [Credential-related source omitted]
  • Network accessline 537
    "mcpServers": {     "brilliant-directories": {       "url": "https://brilliantmcp.com",
  • Network accessline 538
    "brilliant-directories": {       "url": "https://brilliantmcp.com",       "headers": {
  • Network accessline 539
    "url": "https://brilliantmcp.com",
  • Network accessline 540
    [Credential-related source omitted]
  • Network accessline 541
    [Credential-related source omitted]
  • Access to secretsline 541
    [Credential-related source omitted]
  • Network accessline 542
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 551
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 552
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 566
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 567
    [Credential-related source omitted]
  • Access to secretsline 567
    [Credential-related source omitted]
  • Network accessline 568
    "--url", "https://www.your-site.com"
  • Network accessline 575
    [Credential-related source omitted]
  • Access to secretsline 575
    [Credential-related source omitted]
  • Network accessline 595
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (the Cursor Directory installer wires up an `npx` child process): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download:
  • Network accessline 596
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 602
    1. **Open** → <a href="https://cursor.directory/plugins/brilliant-directories" target="_blank" rel="noopener noreferrer">cursor.directory/plugins/brilliant-directories</a>
  • Network accessline 615
    |---|---|    | `BD_API_KEY` | your BD API key |    | `BD_SITE_URL` | `https://www.your-site.com` — include `https://`, no trailing slash |
  • Access to secretsline 616
    [Credential-related source omitted]
  • Network accessline 617
    | `BD_SITE_URL` | `https://www.your-site.com` — include `https://`, no trailing slash |
  • Network accessline 644
    3. In the sidebar, click **Tools & MCP**. 4. Click **New MCP Server**. 5. Paste [the config block](#the-config-block). Replace `ENTER_API_KEY` with your BD API key and `https://www.your-site.com` with your BD site URL.
  • Network accessline 645
    4. Click **New MCP Server**. 5. Paste [the config block](#the-config-block). Replace `ENTER_API_KEY` with your BD API key and `https://www.your-site.com` with your BD site URL. 6. **Click Save, then fully quit and reopen Cursor.** Saving al
  • Network accessline 646
    [Credential-related source omitted]
  • Access to secretsline 646
    [Credential-related source omitted]
  • Network accessline 660
    - If "Folder doesn't exist": navigate to `~/` and create a new folder named exactly `.cursor` (leading dot). Retry. 4. Inside `.cursor`, open `mcp.json` in TextEdit / any text editor. If missing: create it. TextEdit users: File → New → Form
  • Network accessline 662
    [Credential-related source omitted]
  • Access to secretsline 662
    [Credential-related source omitted]
  • Network accessline 669
    3. Inside `.cursor`, open `mcp.json` in Notepad. If missing: right-click empty area → **New** → **Text Document** → rename to `mcp.json` (click Yes to the extension warning).    - Can't see `.txt` / `.json` extensions? File Explorer → **Vie
  • Network accessline 671
    [Credential-related source omitted]
  • Access to secretsline 671
    [Credential-related source omitted]
  • Network accessline 684
    |---|---| | **Server Transport** | `Server Sent Events (Deprecated)` | | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` |
  • Network accessline 685
    | **Server Transport** | `Server Sent Events (Deprecated)` | | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` | | **Authentication** | `Multiple Headers Auth` |
  • Network accessline 686
    | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` |
  • Network accessline 687
    | **Authentication** | `Multiple Headers Auth` | | **Header 1** | Name: `X-Api-Key` · Value: *your 32-char hex BD API key* | | **Header 2** | Name: `X-BD-Site-URL` · Value: `https://www.your-site.com` |
  • Network accessline 689
    | **Header 2** | Name: `X-BD-Site-URL` · Value: `https://www.your-site.com` |
  • Network accessline 694
    > - The MCP spec deprecated SSE in favor of HTTP Streamable > - n8n's SSE client works today against our server > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferr
  • Network accessline 695
    > - n8n's SSE client works today against our server > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferrer">known upstream bugs</a> we filed > - Our server supports
  • Network accessline 696
    > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferrer">known upstream bugs</a> we filed
  • Network accessline 697
    > - Our server supports BOTH transports — when n8n fixes their HTTP Streamable client, you can switch to `https://brilliantmcp.com` (no `/sse` path) with Transport = `HTTP Streamable`. No server changes needed.
  • Network accessline 699
    > **Why `https://brilliantmcp.com/sse`?** The main `brilliantdirectories.com` domain has zone-level security rules (bot challenges, geo blocks) that protect our marketing site but silently blocked n8n's SSE handshake. `brilliantmcp.com` is 
  • Network accessline 705
    https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 709
    [Credential-related source omitted]
  • Access to secretsline 709
    [Credential-related source omitted]
  • Network accessline 711
    **Want to verify the server is healthy yourself?** Install the official <a href="https://github.com/modelcontextprotocol/inspector" target="_blank" rel="noopener noreferrer">MCP Inspector</a> (`npx @modelcontextprotocol/inspector`) and poin
  • Network accessline 717
    Make.com ships an **MCP Client** app (currently Open Beta) that connects to remote MCP servers — see <a href="https://apps.make.com/mcp-client" target="_blank" rel="noopener noreferrer">Make's MCP Client docs</a>. To connect it to our Worke
  • Network accessline 719
    1. Add the **MCP Client** module to your scenario, click **Create a connection**. 2. Click **+ New MCP Server** (we're not yet on Make's verified-servers list). 3. **URL:** `https://brilliantmcp.com`
  • Network accessline 720
    [Credential-related source omitted]
  • Network accessline 721
    3. **URL:** `https://brilliantmcp.com`
  • Network accessline 727
    **Fallback path (works today, every BD operation):** use Make's standard **HTTP** module against `https://www.your-site.com/api/v2/*` with these headers:
  • Network accessline 730
    [Credential-related source omitted]
  • Network accessline 731
    X-BD-Site-URL: https://www.your-site.com
  • Network accessline 744
    [Credential-related source omitted]
  • Network accessline 746
    [Credential-related source omitted]
  • Network accessline 752
    Abacus AI Agent supports MCP servers — both stdio (npm) and remote (URL) — via its **Configure MCP** page (Agent Settings → MCP Server Config). See <a href="https://abacus.ai/help/chatllm-ai-super-assistant/mcp-servers" target="_blank" rel=
  • Network accessline 763
    "brilliant-directories-mcp@latest",       "--api-key", "ENTER_API_KEY",       "--url", "https://www.your-site.com"
  • Network accessline 764
    [Credential-related source omitted]
  • Access to secretsline 764
    [Credential-related source omitted]
  • Network accessline 765
    "--url", "https://www.your-site.com"
  • Network accessline 771
    [Credential-related source omitted]
  • Access to secretsline 771
    [Credential-related source omitted]
  • Network accessline 776
    {   "brilliant-directories": {     "url": "https://brilliantmcp.com",
  • Network accessline 777
    "brilliant-directories": {     "url": "https://brilliantmcp.com",     "headers": {
  • Network accessline 778
    "url": "https://brilliantmcp.com",
  • Network accessline 779
    [Credential-related source omitted]
  • Network accessline 780
    [Credential-related source omitted]
  • Access to secretsline 780
    [Credential-related source omitted]
  • Network accessline 781
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 793
    ### curl / Any HTTP Client
  • Network accessline 795
    [Credential-related source omitted]
  • Access to secretsline 795
    [Credential-related source omitted]
  • Network accessline 797
    > **Why these examples only need `X-Api-Key` (and not `X-BD-Site-URL`):** these calls go DIRECTLY to your BD site (`your-site.com/api/v2/...`), bypassing the MCP Worker. The `X-BD-Site-URL` header is only needed when calling the hosted Work
  • Network accessline 800
    [Credential-related source omitted]
  • Network accessline 801
    [Credential-related source omitted]
  • Access to secretsline 801
    [Credential-related source omitted]
  • Network accessline 803
    [Credential-related source omitted]
  • Network accessline 804
    [Credential-related source omitted]
  • Access to secretsline 804
    [Credential-related source omitted]
  • Network accessline 806
    [Credential-related source omitted]
  • Network accessline 807
    [Credential-related source omitted]
  • Access to secretsline 807
    [Credential-related source omitted]
  • Network accessline 809
    https://www.your-site.com/api/v2/user/create
  • Network accessline 811
    [Credential-related source omitted]
  • Network accessline 812
    [Credential-related source omitted]
  • Access to secretsline 812
    [Credential-related source omitted]
  • Network accessline 814
    https://www.your-site.com/api/v2/user/search
  • Network accessline 816
    [Credential-related source omitted]
  • Network accessline 817
    [Credential-related source omitted]
  • Access to secretsline 817
    [Credential-related source omitted]
  • Network accessline 819
    https://www.your-site.com/api/v2/user/update
  • Network accessline 848
    Get the latest skill zip from the GitHub Releases page: **[bd-skill-content.zip](https://github.com/brilliantdirectories/brilliant-directories-mcp/releases/latest)**.
  • Network accessline 852
    1. Open claude.ai → Settings → Customize → Skills → Upload Skill. 2. Upload the `bd-skill-content.zip` file you downloaded. 3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server).
  • Network accessline 853
    2. Upload the `bd-skill-content.zip` file you downloaded. 3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server). 4. Start a chat and tell Claude what you want: "create event post
  • Network accessline 854
    3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server).
  • Network accessline 889
    [Credential-related source omitted]
  • Access to secretsline 889
    [Credential-related source omitted]
  • Network accessline 891
    [Credential-related source omitted]
  • Access to secretsline 891
    [Credential-related source omitted]
  • Network accessline 897
    [Credential-related source omitted]
  • Access to secretsline 897
    [Credential-related source omitted]
  • Network accessline 905
    - **`401 Unauthorized`** — API key is wrong, revoked, or lacks permission for the endpoint. Regenerate in BD Admin → Developer Hub. - **`403 API Key does not have permission to access this endpoint`** — this specific endpoint isn't granted 
  • Network accessline 906
    - **`403 API Key does not have permission to access this endpoint`** — this specific endpoint isn't granted on your key. Edit the key in BD Admin → Developer Hub and enable the missing endpoint (the error names it). - **`404 Not Found`** — 
  • Network accessline 907
    - **`404 Not Found`** — your site URL is wrong. Must include `https://` and NO trailing slash, and match the canonical form your site responds at (include `www.` if your site uses it). Correct: `https://www.mysite.com`. Wrong: `mysite.com`,
  • Dangerous shell operationline 911
    - **Mac/Linux Terminal:** `rm -rf ~/.npm/_npx`
  • Network accessline 911
    - **Mac/Linux Terminal:** `rm -rf ~/.npm/_npx`   - Then fully quit + reopen. The `-y` in your config makes `npx` re-download automatically — you do NOT need `npm install -g brilliant-directories-mcp`. - **`npx: command not found` or `spawn 
  • Network accessline 912
    - Then fully quit + reopen. The `-y` in your config makes `npx` re-download automatically — you do NOT need `npm install -g brilliant-directories-mcp`. - **`npx: command not found` or `spawn npx ENOENT`** — Node.js isn't installed (or your 
  • Network accessline 913
    - **`npx: command not found` or `spawn npx ENOENT`** — Node.js isn't installed (or your AI app started before Node was installed). Install from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a>, then full
  • Network accessline 915
    - **"not valid MCP server configurations" (Claude Desktop)** — `claude_desktop_config.json` doesn't accept `url`-shaped blocks. Use the Advanced (npm/stdio) config from the [Claude Desktop section](#claude-desktop). Windows users on the Mic
  • Network accessline 924
    |---|---|---|---| | `X-Api-Key` | your BD API key | Yes | Authenticates the request. Admin → **Developer Hub** → **Generate API Key**. | | `X-BD-Site-URL` | `https://www.your-site.com` | Yes | Pairs the API key with its BD site. Full canoni
  • Network accessline 926
    | `X-BD-Site-URL` | `https://www.your-site.com` | Yes | Pairs the API key with its BD site. Full canonical URL (`https://`, exact host, no trailing slash). |
  • Network accessline 932
    | Field the client asks for | What to enter | |---|---| | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) |
  • Network accessline 933
    |---|---| | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) | | **Transport** | `Streamable HTTP` (also called "HTTP Streamable"). **NOT** SSE. **NOT** WebSocket. |
  • Network accessline 934
    | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) |
  • Network accessline 935
    [Credential-related source omitted]
  • Network accessline 936
    [Credential-related source omitted]
  • Network accessline 940
    > **n8n is the exception.** n8n's Streamable HTTP client has upstream bugs, so n8n users must use Transport = `Server Sent Events (Deprecated)` + URL `https://brilliantmcp.com/sse` (with the `/sse` path). See the [n8n section](#n8n) for the
  • Network accessline 1022
    [Credential-related source omitted]
  • Network accessline 1023
    [Credential-related source omitted]
  • Access to secretsline 1023
    [Credential-related source omitted]
  • Network accessline 1025
    [Credential-related source omitted]
  • Network accessline 1026
    [Credential-related source omitted]
  • Access to secretsline 1026
    [Credential-related source omitted]
  • Network accessline 1034
    https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 1074
    - **Bug reports / feature requests:** https://github.com/brilliantdirectories/brilliant-directories-mcp/issues
  • Network accessline 1075
    - **BD Support:** https://support.brilliantdirectories.com
  • Network accessline 1076
    - **API Docs:** https://support.brilliantdirectories.com/support/solutions/articles/12000108045

SKILL.md

  • Network accessline 5
    metadata:   author: Brilliant Directories   homepage: https://github.com/brilliantdirectories/brilliant-directories-mcp
  • Network accessline 6
    author: Brilliant Directories   homepage: https://github.com/brilliantdirectories/brilliant-directories-mcp   npm: https://www.npmjs.com/package/brilliant-directories-mcp
  • Network accessline 7
    homepage: https://github.com/brilliantdirectories/brilliant-directories-mcp
  • Network accessline 8
    npm: https://www.npmjs.com/package/brilliant-directories-mcp
  • Network accessline 9
    openapi: https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 31
    **The authoritative source for every available operation is the OpenAPI spec:** `https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json`
  • Network accessline 32
    `https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json`
  • Network accessline 56
    1. **Remote (no Node.js install):** add an MCP server to the AI client's config pointing at `https://brilliantmcp.com` with two headers — `X-Api-Key` (user's BD API key) and `X-BD-Site-URL` (user's BD site URL). This hits our hosted Cloudfl
  • Network accessline 65
    **Getting an API key:** BD Admin > Developer Hub > Generate API Key (full walkthrough: https://support.brilliantdirectories.com/support/solutions/articles/12000088768).
  • Network accessline 69
    If MCP isn't available but the agent can make authenticated HTTP requests: - Base URL: the user's BD site, full canonical URL with `www.` if applicable (e.g., `https://www.mysite.com`) — never hardcode, always ask
  • Network accessline 70
    - Base URL: the user's BD site, full canonical URL with `www.` if applicable (e.g., `https://www.mysite.com`) — never hardcode, always ask
  • Network accessline 91
    ### Base URL pattern All endpoints live under `{site_url}/api/v2/{resource}/{action}` — e.g., `https://www.mysite.com/api/v2/user/get`.
  • Network accessline 92
    All endpoints live under `{site_url}/api/v2/{resource}/{action}` — e.g., `https://www.mysite.com/api/v2/user/get`.
  • Network accessline 233
    - **OpenAPI spec (live, authoritative):** https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 234
    - **Full endpoint docs (human-readable):** https://github.com/brilliantdirectories/brilliant-directories-mcp/tree/main/docs
  • Network accessline 235
    - **npm package (MCP server):** https://www.npmjs.com/package/brilliant-directories-mcp
  • Network accessline 236
    - **Issues / bug reports:** https://github.com/brilliantdirectories/brilliant-directories-mcp/issues
  • Network accessline 237
    - **BD's own API documentation:** https://support.brilliantdirectories.com/support/solutions/articles/12000108045
  • Network accessline 238
    - **Generate an API key:** https://support.brilliantdirectories.com/support/solutions/articles/12000088768
  • Network accessline 244
    **Easy (no Node.js install):** Add an MCP server to their AI client's config pointing at `https://brilliantmcp.com` with two headers:

bd-skill-content/content-types/blog.md

  • Network accessline 186
    When opted in: 1 inline body image per 300-500 words (excluding the feature image). Image float: `class="fr-dib fr-fil img-rounded"` (left) or `class="fr-dib fr-fir img-rounded"` (right) + inline `style="width: 350px;"` on the `<img>`. Sour

bd-skill-content/content-types/jobs.md

  • Network accessline 26
    - **6a. Shortfall queries — fewer than five pooled →** five new-angle WebSearch shapes ride this same message — untried facets on untried source classes: `site:jobs.ashbyhq.com <occupation>`, `site:jobs.smartrecruiters.com <occupation>`, `<
  • Network accessline 27
    - **6b. The compound and probes** — per the `Dedup` section: every keyed candidate from any search or fetch so far aboard. Once a candidate shows its title, its research stops until it survives Step 7. Results yielding a single keyed candid
  • Network accessline 28
    7. **Duplicate detection.** Stage 2's calls fired with Step 6's message — compare the returned rows and write the verdicts per METHODOLOGY `Stage 2: Duplicate detection` and the `Dedup` section's jobs-specific match criteria. Dupes drop fro

bd-skill-content/flattened/blog.system.md

  • Network accessline 224
    | -------- | ------------------------------------------------------------------------------------- | | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target)                   | | External | `<a href="https://..." ti
  • Network accessline 226
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 276
    **Step 2 — Dimension-check the whole pool.** Take every `/photo/<slug>-<id>/` result from all searches, build each canonical URL `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`, and pass them ALL into ONE `getImageDimensions 
  • Network accessline 398
    `<admin_edit_url>` **verbatim shape — DO NOT paraphrase:** `https://ww2.managemydirectory.com/admin/viewPosts.php?search[value]=<post_id>&data_type=<data_type>&data_id=<data_id>&newsite=<website_id>`. Host fixed. All four params required (`
  • Network accessline 412
    "post_type_name": "Event",       "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 413
    "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",       "post_author_id": 5
  • Network accessline 414
    "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 780
    |---|---| | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target) | | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 782
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 1012
    When opted in: 1 inline body image per 300-500 words (excluding the feature image). Image float: `class="fr-dib fr-fil img-rounded"` (left) or `class="fr-dib fr-fir img-rounded"` (right) + inline `style="width: 350px;"` on the `<img>`. Sour

bd-skill-content/flattened/events.system.md

  • Network accessline 224
    | -------- | ------------------------------------------------------------------------------------- | | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target)                   | | External | `<a href="https://..." ti
  • Network accessline 226
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 276
    **Step 2 — Dimension-check the whole pool.** Take every `/photo/<slug>-<id>/` result from all searches, build each canonical URL `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`, and pass them ALL into ONE `getImageDimensions 
  • Network accessline 398
    `<admin_edit_url>` **verbatim shape — DO NOT paraphrase:** `https://ww2.managemydirectory.com/admin/viewPosts.php?search[value]=<post_id>&data_type=<data_type>&data_id=<data_id>&newsite=<website_id>`. Host fixed. All four params required (`
  • Network accessline 412
    "post_type_name": "Event",       "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 413
    "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",       "post_author_id": 5
  • Network accessline 414
    "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 780
    |---|---| | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target) | | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 782
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 843
    The geocoder is uneven — over-scoped queries (venue + street + city + region + zip + country) miss; medium-scoped queries (venue + city + region OR street + city + region) hit. Spelled-out state names beat 2-letter codes (`"Florida"` not `"

bd-skill-content/flattened/jobs.system.md

  • Network accessline 224
    | -------- | ------------------------------------------------------------------------------------- | | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target)                   | | External | `<a href="https://..." ti
  • Network accessline 226
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 276
    **Step 2 — Dimension-check the whole pool.** Take every `/photo/<slug>-<id>/` result from all searches, build each canonical URL `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`, and pass them ALL into ONE `getImageDimensions 
  • Network accessline 398
    `<admin_edit_url>` **verbatim shape — DO NOT paraphrase:** `https://ww2.managemydirectory.com/admin/viewPosts.php?search[value]=<post_id>&data_type=<data_type>&data_id=<data_id>&newsite=<website_id>`. Host fixed. All four params required (`
  • Network accessline 412
    "post_type_name": "Event",       "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 413
    "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",       "post_author_id": 5
  • Network accessline 414
    "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 780
    |---|---| | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target) | | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 782
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 843
    The geocoder is uneven — over-scoped queries (venue + street + city + region + zip + country) miss; medium-scoped queries (venue + city + region OR street + city + region) hit. Spelled-out state names beat 2-letter codes (`"Florida"` not `"
  • Network accessline 904
    - **6a. Shortfall queries — fewer than five pooled →** five new-angle WebSearch shapes ride this same message — untried facets on untried source classes: `site:jobs.ashbyhq.com <occupation>`, `site:jobs.smartrecruiters.com <occupation>`, `<
  • Network accessline 905
    - **6b. The compound and probes** — per the `Dedup` section: every keyed candidate from any search or fetch so far aboard. Once a candidate shows its title, its research stops until it survives Step 7. Results yielding a single keyed candid
  • Network accessline 906
    7. **Duplicate detection.** Stage 2's calls fired with Step 6's message — compare the returned rows and write the verdicts per METHODOLOGY `Stage 2: Duplicate detection` and the `Dedup` section's jobs-specific match criteria. Dupes drop fro

bd-skill-content/shared/GEOCODING.md

  • Network accessline 17
    The geocoder is uneven — over-scoped queries (venue + street + city + region + zip + country) miss; medium-scoped queries (venue + city + region OR street + city + region) hit. Spelled-out state names beat 2-letter codes (`"Florida"` not `"

bd-skill-content/shared/METHODOLOGY.md

  • Network accessline 166
    | -------- | ------------------------------------------------------------------------------------- | | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target)                   | | External | `<a href="https://..." ti
  • Network accessline 168
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 218
    **Step 2 — Dimension-check the whole pool.** Take every `/photo/<slug>-<id>/` result from all searches, build each canonical URL `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`, and pass them ALL into ONE `getImageDimensions 
  • Network accessline 340
    `<admin_edit_url>` **verbatim shape — DO NOT paraphrase:** `https://ww2.managemydirectory.com/admin/viewPosts.php?search[value]=<post_id>&data_type=<data_type>&data_id=<data_id>&newsite=<website_id>`. Host fixed. All four params required (`
  • Network accessline 354
    "post_type_name": "Event",       "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",
  • Network accessline 355
    "post_title": "Tampa Sunrise 5K",       "post_url": "https://site.com/events/tampa-sunrise-5k",       "post_author_id": 5
  • Network accessline 356
    "post_url": "https://site.com/events/tampa-sunrise-5k",

bd-skill-content/shared/URL-PATTERNS.md

  • Network accessline 155
    |---|---| | Internal | `<a href="/..." title="<descriptive>">text</a>` (no rel, no target) | | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |
  • Network accessline 157
    | External | `<a href="https://..." title="<descriptive>" rel="noopener" target="_blank">text</a>` |

docs/api-categories.md

  • Network accessline 8
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108057_

docs/api-clicks.md

  • Network accessline 1
    # BD API — Users Clicked Links Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108048_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108048_

docs/api-data-types.md

  • Network accessline 1
    # BD API — Data Types (post type definitions) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108105_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108105_

docs/api-email-templates.md

  • Network accessline 1
    # BD API — Email Templates Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108093_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108093_

docs/api-form-fields.md

  • Network accessline 1
    # BD API — Form Fields Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108076_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108076_

docs/api-forms.md

  • Network accessline 1
    # BD API — Forms Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108075_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108075_

docs/api-lead-matches.md

  • Network accessline 1
    # BD API — Lead Matches Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108074_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108074_

docs/api-leads.md

  • Network accessline 1
    # BD API — Leads Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108049_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108049_
  • Network accessline 4
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000091106 (How to Edit Lead Data with API Calls)
  • Network accessline 5
    - https://support.brilliantdirectories.com/support/solutions/articles/12000091106 (How to Edit Lead Data with API Calls)

docs/api-membership-plans.md

  • Network accessline 1
    # BD API — Membership Plans (Subscription Types) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108102_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108102_

docs/api-menu-items.md

  • Network accessline 1
    # BD API — Menu Items Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108111_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108111_

docs/api-menus.md

  • Network accessline 1
    # BD API — Menus Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108110_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108110_

docs/api-pages.md

  • Network accessline 8
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108123_

docs/api-portfolio-groups.md

  • Network accessline 8
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000108051 (Multi Image Posts / Album Groups reference — primary source)
  • Network accessline 9
    - https://support.brilliantdirectories.com/support/solutions/articles/12000108051 (Multi Image Posts / Album Groups reference — primary source)
  • Network accessline 10
    - https://support.brilliantdirectories.com/support/solutions/articles/12000093239 (Member Posts API — confirms `auto_image_import` support across both post families)
  • Network accessline 59
    auto_image_import=1) → returns group_id=42 3. createMultiImagePostPhoto(user_id=X, group_id=42,                              original_image_url="https://source.com/pic1.jpg") → photo 1
  • Network accessline 60
    3. createMultiImagePostPhoto(user_id=X, group_id=42,                              original_image_url="https://source.com/pic1.jpg") → photo 1 4. createMultiImagePostPhoto(user_id=X, group_id=42,
  • Network accessline 61
    original_image_url="https://source.com/pic1.jpg") → photo 1
  • Network accessline 62
    4. createMultiImagePostPhoto(user_id=X, group_id=42,                              original_image_url="https://source.com/pic2.jpg") → photo 2 5. ...repeat for each photo
  • Network accessline 63
    original_image_url="https://source.com/pic2.jpg") → photo 2

docs/api-portfolio-photos.md

  • Network accessline 8
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000108052 (primary source)
  • Network accessline 9
    - https://support.brilliantdirectories.com/support/solutions/articles/12000108052 (primary source)
  • Network accessline 10
    - https://support.brilliantdirectories.com/support/solutions/articles/12000093239 (Member Posts API — covers both post families and their image-handling)

docs/api-post-types.md

  • Network accessline 1
    # BD API — Post Types (Data Categories) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108054_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108054_

docs/api-posts.md

  • Network accessline 8
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000108050 (Data Posts reference — primary source)
  • Network accessline 9
    - https://support.brilliantdirectories.com/support/solutions/articles/12000108050 (Data Posts reference — primary source)
  • Network accessline 10
    - https://support.brilliantdirectories.com/support/solutions/articles/12000093239 (Member Posts API — confirms `auto_image_import` support across both post families)

docs/api-redirects.md

  • Network accessline 1
    # BD API — Redirects (redirect_301) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108112_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108112_
  • Network accessline 51
    - URLs should be relative to the domain root (`old-page`, `/new-page`), not absolute URLs (`https://site.com/old-page`).

docs/api-reviews.md

  • Network accessline 1
    # BD API — User Reviews Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108053_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108053_
  • Network accessline 4
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000097913 (How to Edit Reviews Data with API Calls)
  • Network accessline 5
    - https://support.brilliantdirectories.com/support/solutions/articles/12000097913 (How to Edit Reviews Data with API Calls)

docs/api-services.md

  • Network accessline 8
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108122_

docs/api-smart-lists.md

  • Network accessline 1
    # BD API — Smart Lists Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108113_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108113_

docs/api-tag-groups.md

  • Network accessline 1
    # BD API — Tag Groups Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108060_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108060_

docs/api-tag-relationships.md

  • Network accessline 1
    # BD API — Tag Relationships (Rel Tags) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108062_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108062_

docs/api-tag-types.md

  • Network accessline 1
    # BD API — Tag Types Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108061_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108061_

docs/api-tags.md

  • Network accessline 1
    # BD API — Tags Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108059_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108059_

docs/api-unsubscribe.md

  • Network accessline 1
    # BD API — Unsubscribe List Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108055_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108055_
  • Network accessline 4
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000102546 (Unsubscribe API)
  • Network accessline 5
    - https://support.brilliantdirectories.com/support/solutions/articles/12000102546 (Unsubscribe API)

docs/api-user-meta.md

  • Network accessline 1
    # BD API — User Metadata (EAV) Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108063_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108063_

docs/api-user-photos.md

  • Network accessline 1
    # BD API — User Photos Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108065_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108065_

docs/api-user-services.md

  • Network accessline 8
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108071_

docs/api-users.md

  • Network accessline 1
    # BD API — Users Endpoints _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108047_
  • Network accessline 2
    _Source: https://support.brilliantdirectories.com/support/solutions/articles/12000108047_
  • Network accessline 4
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000091105 (How to Edit Member Data with API Calls)
  • Network accessline 5
    - https://support.brilliantdirectories.com/support/solutions/articles/12000091105 (How to Edit Member Data with API Calls)
  • Network accessline 6
    - https://support.brilliantdirectories.com/support/solutions/articles/12000103947 (Users API — How to Manage Users with API Calls)
  • Network accessline 34
    **Example:** - Site: `https://yoursite.example.com`
  • Network accessline 35
    - Site: `https://yoursite.example.com`
  • Network accessline 37
    - Full URL: `https://yoursite.example.com/united-states/monterey-park/doctor/jane-doe-m-d`
  • Network accessline 43
    The user schema has three image-URL fields: `profile_photo`, `logo`, `cover_photo`. By default, BD **stores whatever URL you pass as-is** — if you pass `https://example.com/scraped-logo.png`, that exact URL is used when rendering the member
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    "subscription_id": 1,   "logo": "https://source-site.com/images/logo.png",   "auto_image_import": "1"
  • Network accessline 58
    "logo": "https://source-site.com/images/logo.png",
  • Network accessline 79
    ### Validation behaviors - URL fields (`website`, `booking_link`, `blog`, `facebook`, `twitter`, `linkedin`, `instagram`, etc.) are validated on write; invalid formats are silently skipped (not rejected — the rest of the payload still saves
  • Network accessline 80
    - URL fields (`website`, `booking_link`, `blog`, `facebook`, `twitter`, `linkedin`, `instagram`, etc.) are validated on write; invalid formats are silently skipped (not rejected — the rest of the payload still saves). Must start with `http:

docs/api-widgets.md

  • Network accessline 8
    **Related support articles:** - https://support.brilliantdirectories.com/support/solutions/articles/12000108056 (primary API Reference — Widgets)
  • Network accessline 9
    - https://support.brilliantdirectories.com/support/solutions/articles/12000108056 (primary API Reference — Widgets)
  • Network accessline 10
    - https://support.brilliantdirectories.com/support/solutions/articles/12000103396 (Widgets API — How to edit widgets data with API Calls)

glama.json

  • Network accessline 1
    {   "$schema": "https://glama.ai/mcp/schemas/server.json",
  • Network accessline 2
    "$schema": "https://glama.ai/mcp/schemas/server.json",

mcp/README.md

  • Network accessline 3
    [![npm version](https://img.shields.io/npm/v/brilliant-directories-mcp?color=blue&label=npm)](https://www.npmjs.com/package/brilliant-directories-mcp)
  • Network accessline 4
    [![license](https://img.shields.io/github/license/brilliantdirectories/brilliant-directories-mcp?color=green)](LICENSE)
  • Network accessline 5
    [![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)
  • Network accessline 15
    1. **Your BD site URL.** Use the full canonical URL exactly as it loads in a browser — include `https://` (or `http://` if your site has no SSL), include `www.` if your site uses it, no trailing slash.
  • Network accessline 16
    - ✅ `https://www.mysite.com` (most BD sites)
  • Network accessline 17
    - ✅ `https://mysite.com` (only if your site has no `www.`)
  • Network accessline 18
    - ✅ `http://mysite.com` (HTTP-only sites — protocol respected)
  • Network accessline 19
    - ❌ `mysite.com` (missing protocol)    - ❌ `https://mysite.com/` (trailing slash)    - ❌ `https://mysite.com` if the site actually serves at `www.mysite.com` — use the form your site canonically responds at
  • Network accessline 20
    - ❌ `https://mysite.com/` (trailing slash)
  • Network accessline 21
    - ❌ `https://mysite.com` if the site actually serves at `www.mysite.com` — use the form your site canonically responds at
  • Network accessline 26
    <a href="https://support.brilliantdirectories.com/support/solutions/articles/12000088768" target="_blank" rel="noopener noreferrer">Full walkthrough: How to Create an API Key</a>.
  • Network accessline 28
    3. **Node.js — only for the Advanced path** (see below). Not needed for the Easy path. If you need it, one-time install from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` to down
  • Network accessline 64
    - [Zapier](#zapier)   - [Abacus.AI (ChatLLM Agent)](#abacusai-chatllm-agent)   - [curl / any HTTP client](#curl--any-http-client)
  • Network accessline 65
    - [Abacus.AI (ChatLLM Agent)](#abacusai-chatllm-agent)   - [curl / any HTTP client](#curl--any-http-client) - [What you can ask the AI](#what-you-can-ask-the-ai)
  • Network accessline 66
    - [curl / any HTTP client](#curl--any-http-client)
  • Network accessline 88
    - **🚀 Easy config block** — points at our hosted MCP at `https://brilliantmcp.com`. No Node.js, no install, no terminal. Starts working the moment you save and restart your AI app.
  • Network accessline 91
    **Needs Node.js installed first** — get it from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` to download, then click `Windows Installer (.msi)` — Mac: `macOS Installer` — and DO
  • Network accessline 101
    "mcpServers": {     "brilliant-directories": {       "url": "https://brilliantmcp.com",
  • Network accessline 102
    "brilliant-directories": {       "url": "https://brilliantmcp.com",       "headers": {
  • Network accessline 103
    "url": "https://brilliantmcp.com",
  • Network accessline 104
    [Credential-related source omitted]
  • Network accessline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Network accessline 106
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 113
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]
  • Network accessline 123
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (the Advanced path runs an `npx` command on your machine): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Wind
  • Network accessline 124
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 142
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 143
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 144
    "--url", "https://www.your-site.com"
  • Network accessline 161
    > ⚠<U+FE0F> **Windows users:** install Claude Desktop from <a href="https://claude.ai/download" target="_blank" rel="noopener noreferrer">claude.ai/download</a>, NOT the Microsoft Store (the Store version sandboxes the config file).
  • Network accessline 163
    > **Banner saying "Tool result could not be submitted… connection interrupted"?** Cosmetic UI bug across every MCP connector ([anthropics/claude-code #51874](https://github.com/anthropics/claude-code/issues/51874)) — your tools still work. 
  • Network accessline 165
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 166
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 194
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 195
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Network accessline 196
    "--url", "https://www.your-site.com"
  • Network accessline 203
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]
  • Network accessline 236
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Network accessline 238
    "--url", "https://www.your-site.com"
  • Network accessline 245
    [Credential-related source omitted]
  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 247
    > **Paste your final file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a> before restarting to ensure correct formatting.**
  • Network accessline 263
    > **Not connected?** Check **Settings → Developer → MCP servers** for the error. Common causes: > - JSON typo — paste your file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a>
  • Network accessline 264
    > - JSON typo — paste your file into <a href="https://jsonlint.com" target="_blank" rel="noopener noreferrer">jsonlint.com</a>
  • Network accessline 265
    > - Wrong API key, or URL missing `https://` / has trailing slash
  • Network accessline 281
    1. **Node.js** — from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> (click `Get Node.js®` → `Windows Installer (.msi)` or `macOS Installer` → double-click to install, click Next through the prompts).
  • Access to secretsline 301
    [Credential-related source omitted]
  • Network accessline 308
    [Credential-related source omitted]
  • Access to secretsline 308
    [Credential-related source omitted]
  • Access to secretsline 309
    [Credential-related source omitted]
  • Network accessline 310
    --header "X-BD-Site-URL: https://www.your-site.com"
  • Network accessline 313
    [Credential-related source omitted]
  • Access to secretsline 313
    [Credential-related source omitted]
  • Network accessline 318
    [Credential-related source omitted]
  • Access to secretsline 318
    [Credential-related source omitted]
  • Network accessline 347
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before editing the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 348
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 365
    "brilliant-directories-mcp@latest",            "--api-key", "ENTER_API_KEY",            "--url", "https://www.your-site.com"
  • Network accessline 366
    [Credential-related source omitted]
  • Access to secretsline 366
    [Credential-related source omitted]
  • Network accessline 367
    "--url", "https://www.your-site.com"
  • Network accessline 374
    [Credential-related source omitted]
  • Access to secretsline 374
    [Credential-related source omitted]
  • Network accessline 383
    [Credential-related source omitted]
  • Access to secretsline 383
    [Credential-related source omitted]
  • Network accessline 401
    **1. Download Codex Desktop** from <a href="https://chatgpt.com/codex/get-started/" target="_blank" rel="noopener noreferrer">chatgpt.com/codex/get-started</a> and install it.
  • Network accessline 412
    |---|---| | **Name** | `Brilliant Directories` (or any label) | | **URL** | `https://brilliantmcp.com` |
  • Network accessline 413
    | **Name** | `Brilliant Directories` (or any label) | | **URL** | `https://brilliantmcp.com` | | **Bearer token env var** | *leave empty — don't touch* |
  • Network accessline 414
    | **URL** | `https://brilliantmcp.com` |
  • Network accessline 418
    | *Click **+ Add header** to add the second row* | | | **Headers** — Key (row 2) | `X-BD-Site-URL` | | **Headers** — Value (row 2) | `https://www.your-site.com` |
  • Network accessline 419
    | **Headers** — Key (row 2) | `X-BD-Site-URL` | | **Headers** — Value (row 2) | `https://www.your-site.com` | | **Headers from environment variables** | *leave empty — don't touch* |
  • Network accessline 420
    | **Headers** — Value (row 2) | `https://www.your-site.com` |
  • Network accessline 427
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 428
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 444
    | **Arguments** — Row 4 | your BD API key | | **Arguments** — Row 5 | `--url` | | **Arguments** — Row 6 | `https://www.your-site.com` |
  • Network accessline 445
    | **Arguments** — Row 5 | `--url` | | **Arguments** — Row 6 | `https://www.your-site.com` | | **Environment variables** | *leave empty — don't touch* |
  • Network accessline 446
    | **Arguments** — Row 6 | `https://www.your-site.com` |
  • Network accessline 479
    "mcpServers": {     "brilliant-directories": {       "serverUrl": "https://brilliantmcp.com",
  • Network accessline 480
    "brilliant-directories": {       "serverUrl": "https://brilliantmcp.com",       "headers": {
  • Network accessline 481
    "serverUrl": "https://brilliantmcp.com",
  • Network accessline 482
    [Credential-related source omitted]
  • Network accessline 483
    [Credential-related source omitted]
  • Access to secretsline 483
    [Credential-related source omitted]
  • Network accessline 484
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 493
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 494
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 508
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 509
    [Credential-related source omitted]
  • Access to secretsline 509
    [Credential-related source omitted]
  • Network accessline 510
    "--url", "https://www.your-site.com"
  • Network accessline 517
    [Credential-related source omitted]
  • Access to secretsline 517
    [Credential-related source omitted]
  • Network accessline 537
    "mcpServers": {     "brilliant-directories": {       "url": "https://brilliantmcp.com",
  • Network accessline 538
    "brilliant-directories": {       "url": "https://brilliantmcp.com",       "headers": {
  • Network accessline 539
    "url": "https://brilliantmcp.com",
  • Network accessline 540
    [Credential-related source omitted]
  • Network accessline 541
    [Credential-related source omitted]
  • Access to secretsline 541
    [Credential-related source omitted]
  • Network accessline 542
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 551
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (before pasting the config below): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** o
  • Network accessline 552
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 566
    "brilliant-directories-mcp@latest",         "--api-key", "ENTER_API_KEY",         "--url", "https://www.your-site.com"
  • Network accessline 567
    [Credential-related source omitted]
  • Access to secretsline 567
    [Credential-related source omitted]
  • Network accessline 568
    "--url", "https://www.your-site.com"
  • Network accessline 575
    [Credential-related source omitted]
  • Access to secretsline 575
    [Credential-related source omitted]
  • Network accessline 595
    > ⚠<U+FE0F> **STEP 1 — Install Node.js FIRST** (the Cursor Directory installer wires up an `npx` child process): > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download:
  • Network accessline 596
    > - Go to <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a> → click **Get Node.js®** > - Download: **Windows Installer (.msi)** or **macOS Installer** > - Double-click the file → click Next through every 
  • Network accessline 602
    1. **Open** → <a href="https://cursor.directory/plugins/brilliant-directories" target="_blank" rel="noopener noreferrer">cursor.directory/plugins/brilliant-directories</a>
  • Network accessline 615
    |---|---|    | `BD_API_KEY` | your BD API key |    | `BD_SITE_URL` | `https://www.your-site.com` — include `https://`, no trailing slash |
  • Access to secretsline 616
    [Credential-related source omitted]
  • Network accessline 617
    | `BD_SITE_URL` | `https://www.your-site.com` — include `https://`, no trailing slash |
  • Network accessline 644
    3. In the sidebar, click **Tools & MCP**. 4. Click **New MCP Server**. 5. Paste [the config block](#the-config-block). Replace `ENTER_API_KEY` with your BD API key and `https://www.your-site.com` with your BD site URL.
  • Network accessline 645
    4. Click **New MCP Server**. 5. Paste [the config block](#the-config-block). Replace `ENTER_API_KEY` with your BD API key and `https://www.your-site.com` with your BD site URL. 6. **Click Save, then fully quit and reopen Cursor.** Saving al
  • Network accessline 646
    [Credential-related source omitted]
  • Access to secretsline 646
    [Credential-related source omitted]
  • Network accessline 660
    - If "Folder doesn't exist": navigate to `~/` and create a new folder named exactly `.cursor` (leading dot). Retry. 4. Inside `.cursor`, open `mcp.json` in TextEdit / any text editor. If missing: create it. TextEdit users: File → New → Form
  • Network accessline 662
    [Credential-related source omitted]
  • Access to secretsline 662
    [Credential-related source omitted]
  • Network accessline 669
    3. Inside `.cursor`, open `mcp.json` in Notepad. If missing: right-click empty area → **New** → **Text Document** → rename to `mcp.json` (click Yes to the extension warning).    - Can't see `.txt` / `.json` extensions? File Explorer → **Vie
  • Network accessline 671
    [Credential-related source omitted]
  • Access to secretsline 671
    [Credential-related source omitted]
  • Network accessline 684
    |---|---| | **Server Transport** | `Server Sent Events (Deprecated)` | | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` |
  • Network accessline 685
    | **Server Transport** | `Server Sent Events (Deprecated)` | | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` | | **Authentication** | `Multiple Headers Auth` |
  • Network accessline 686
    | **MCP Endpoint URL** | `https://brilliantmcp.com/sse` |
  • Network accessline 687
    | **Authentication** | `Multiple Headers Auth` | | **Header 1** | Name: `X-Api-Key` · Value: *your 32-char hex BD API key* | | **Header 2** | Name: `X-BD-Site-URL` · Value: `https://www.your-site.com` |
  • Network accessline 689
    | **Header 2** | Name: `X-BD-Site-URL` · Value: `https://www.your-site.com` |
  • Network accessline 694
    > - The MCP spec deprecated SSE in favor of HTTP Streamable > - n8n's SSE client works today against our server > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferr
  • Network accessline 695
    > - n8n's SSE client works today against our server > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferrer">known upstream bugs</a> we filed > - Our server supports
  • Network accessline 696
    > - n8n's HTTP Streamable client has <a href="https://github.com/n8n-io/n8n/issues/28924" target="_blank" rel="noopener noreferrer">known upstream bugs</a> we filed
  • Network accessline 697
    > - Our server supports BOTH transports — when n8n fixes their HTTP Streamable client, you can switch to `https://brilliantmcp.com` (no `/sse` path) with Transport = `HTTP Streamable`. No server changes needed.
  • Network accessline 699
    > **Why `https://brilliantmcp.com/sse`?** The main `brilliantdirectories.com` domain has zone-level security rules (bot challenges, geo blocks) that protect our marketing site but silently blocked n8n's SSE handshake. `brilliantmcp.com` is 
  • Network accessline 705
    https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 709
    [Credential-related source omitted]
  • Access to secretsline 709
    [Credential-related source omitted]
  • Network accessline 711
    **Want to verify the server is healthy yourself?** Install the official <a href="https://github.com/modelcontextprotocol/inspector" target="_blank" rel="noopener noreferrer">MCP Inspector</a> (`npx @modelcontextprotocol/inspector`) and poin
  • Network accessline 717
    Make.com ships an **MCP Client** app (currently Open Beta) that connects to remote MCP servers — see <a href="https://apps.make.com/mcp-client" target="_blank" rel="noopener noreferrer">Make's MCP Client docs</a>. To connect it to our Worke
  • Network accessline 719
    1. Add the **MCP Client** module to your scenario, click **Create a connection**. 2. Click **+ New MCP Server** (we're not yet on Make's verified-servers list). 3. **URL:** `https://brilliantmcp.com`
  • Network accessline 720
    [Credential-related source omitted]
  • Network accessline 721
    3. **URL:** `https://brilliantmcp.com`
  • Network accessline 727
    **Fallback path (works today, every BD operation):** use Make's standard **HTTP** module against `https://www.your-site.com/api/v2/*` with these headers:
  • Network accessline 730
    [Credential-related source omitted]
  • Network accessline 731
    X-BD-Site-URL: https://www.your-site.com
  • Network accessline 744
    [Credential-related source omitted]
  • Network accessline 746
    [Credential-related source omitted]
  • Network accessline 752
    Abacus AI Agent supports MCP servers — both stdio (npm) and remote (URL) — via its **Configure MCP** page (Agent Settings → MCP Server Config). See <a href="https://abacus.ai/help/chatllm-ai-super-assistant/mcp-servers" target="_blank" rel=
  • Network accessline 763
    "brilliant-directories-mcp@latest",       "--api-key", "ENTER_API_KEY",       "--url", "https://www.your-site.com"
  • Network accessline 764
    [Credential-related source omitted]
  • Access to secretsline 764
    [Credential-related source omitted]
  • Network accessline 765
    "--url", "https://www.your-site.com"
  • Network accessline 771
    [Credential-related source omitted]
  • Access to secretsline 771
    [Credential-related source omitted]
  • Network accessline 776
    {   "brilliant-directories": {     "url": "https://brilliantmcp.com",
  • Network accessline 777
    "brilliant-directories": {     "url": "https://brilliantmcp.com",     "headers": {
  • Network accessline 778
    "url": "https://brilliantmcp.com",
  • Network accessline 779
    [Credential-related source omitted]
  • Network accessline 780
    [Credential-related source omitted]
  • Access to secretsline 780
    [Credential-related source omitted]
  • Network accessline 781
    "X-BD-Site-URL": "https://www.your-site.com"
  • Network accessline 793
    ### curl / Any HTTP Client
  • Network accessline 795
    [Credential-related source omitted]
  • Access to secretsline 795
    [Credential-related source omitted]
  • Network accessline 797
    > **Why these examples only need `X-Api-Key` (and not `X-BD-Site-URL`):** these calls go DIRECTLY to your BD site (`your-site.com/api/v2/...`), bypassing the MCP Worker. The `X-BD-Site-URL` header is only needed when calling the hosted Work
  • Network accessline 800
    [Credential-related source omitted]
  • Network accessline 801
    [Credential-related source omitted]
  • Access to secretsline 801
    [Credential-related source omitted]
  • Network accessline 803
    [Credential-related source omitted]
  • Network accessline 804
    [Credential-related source omitted]
  • Access to secretsline 804
    [Credential-related source omitted]
  • Network accessline 806
    [Credential-related source omitted]
  • Network accessline 807
    [Credential-related source omitted]
  • Access to secretsline 807
    [Credential-related source omitted]
  • Network accessline 809
    https://www.your-site.com/api/v2/user/create
  • Network accessline 811
    [Credential-related source omitted]
  • Network accessline 812
    [Credential-related source omitted]
  • Access to secretsline 812
    [Credential-related source omitted]
  • Network accessline 814
    https://www.your-site.com/api/v2/user/search
  • Network accessline 816
    [Credential-related source omitted]
  • Network accessline 817
    [Credential-related source omitted]
  • Access to secretsline 817
    [Credential-related source omitted]
  • Network accessline 819
    https://www.your-site.com/api/v2/user/update
  • Network accessline 848
    Get the latest skill zip from the GitHub Releases page: **[bd-skill-content.zip](https://github.com/brilliantdirectories/brilliant-directories-mcp/releases/latest)**.
  • Network accessline 852
    1. Open claude.ai → Settings → Customize → Skills → Upload Skill. 2. Upload the `bd-skill-content.zip` file you downloaded. 3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server).
  • Network accessline 853
    2. Upload the `bd-skill-content.zip` file you downloaded. 3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server). 4. Start a chat and tell Claude what you want: "create event post
  • Network accessline 854
    3. Ensure your BD MCP is connected (either the hosted `https://brilliantmcp.com` or the npm-installed local server).
  • Network accessline 889
    [Credential-related source omitted]
  • Access to secretsline 889
    [Credential-related source omitted]
  • Network accessline 891
    [Credential-related source omitted]
  • Access to secretsline 891
    [Credential-related source omitted]
  • Network accessline 897
    [Credential-related source omitted]
  • Access to secretsline 897
    [Credential-related source omitted]
  • Network accessline 905
    - **`401 Unauthorized`** — API key is wrong, revoked, or lacks permission for the endpoint. Regenerate in BD Admin → Developer Hub. - **`403 API Key does not have permission to access this endpoint`** — this specific endpoint isn't granted 
  • Network accessline 906
    - **`403 API Key does not have permission to access this endpoint`** — this specific endpoint isn't granted on your key. Edit the key in BD Admin → Developer Hub and enable the missing endpoint (the error names it). - **`404 Not Found`** — 
  • Network accessline 907
    - **`404 Not Found`** — your site URL is wrong. Must include `https://` and NO trailing slash, and match the canonical form your site responds at (include `www.` if your site uses it). Correct: `https://www.mysite.com`. Wrong: `mysite.com`,
  • Dangerous shell operationline 911
    - **Mac/Linux Terminal:** `rm -rf ~/.npm/_npx`
  • Network accessline 911
    - **Mac/Linux Terminal:** `rm -rf ~/.npm/_npx`   - Then fully quit + reopen. The `-y` in your config makes `npx` re-download automatically — you do NOT need `npm install -g brilliant-directories-mcp`. - **`npx: command not found` or `spawn 
  • Network accessline 912
    - Then fully quit + reopen. The `-y` in your config makes `npx` re-download automatically — you do NOT need `npm install -g brilliant-directories-mcp`. - **`npx: command not found` or `spawn npx ENOENT`** — Node.js isn't installed (or your 
  • Network accessline 913
    - **`npx: command not found` or `spawn npx ENOENT`** — Node.js isn't installed (or your AI app started before Node was installed). Install from <a href="https://nodejs.org" target="_blank" rel="noopener noreferrer">nodejs.org</a>, then full
  • Network accessline 915
    - **"not valid MCP server configurations" (Claude Desktop)** — `claude_desktop_config.json` doesn't accept `url`-shaped blocks. Use the Advanced (npm/stdio) config from the [Claude Desktop section](#claude-desktop). Windows users on the Mic
  • Network accessline 924
    |---|---|---|---| | `X-Api-Key` | your BD API key | Yes | Authenticates the request. Admin → **Developer Hub** → **Generate API Key**. | | `X-BD-Site-URL` | `https://www.your-site.com` | Yes | Pairs the API key with its BD site. Full canoni
  • Network accessline 926
    | `X-BD-Site-URL` | `https://www.your-site.com` | Yes | Pairs the API key with its BD site. Full canonical URL (`https://`, exact host, no trailing slash). |
  • Network accessline 932
    | Field the client asks for | What to enter | |---|---| | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) |
  • Network accessline 933
    |---|---| | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) | | **Transport** | `Streamable HTTP` (also called "HTTP Streamable"). **NOT** SSE. **NOT** WebSocket. |
  • Network accessline 934
    | **MCP Server URL** / Endpoint URL / Remote Server URL | `https://brilliantmcp.com` (no `/sse`, no trailing path) |
  • Network accessline 935
    [Credential-related source omitted]
  • Network accessline 936
    [Credential-related source omitted]
  • Network accessline 940
    > **n8n is the exception.** n8n's Streamable HTTP client has upstream bugs, so n8n users must use Transport = `Server Sent Events (Deprecated)` + URL `https://brilliantmcp.com/sse` (with the `/sse` path). See the [n8n section](#n8n) for the
  • Network accessline 1022
    [Credential-related source omitted]
  • Network accessline 1023
    [Credential-related source omitted]
  • Access to secretsline 1023
    [Credential-related source omitted]
  • Network accessline 1025
    [Credential-related source omitted]
  • Network accessline 1026
    [Credential-related source omitted]
  • Access to secretsline 1026
    [Credential-related source omitted]
  • Network accessline 1034
    https://raw.githubusercontent.com/brilliantdirectories/brilliant-directories-mcp/main/mcp/openapi/bd-api.json
  • Network accessline 1074
    - **Bug reports / feature requests:** https://github.com/brilliantdirectories/brilliant-directories-mcp/issues
  • Network accessline 1075
    - **BD Support:** https://support.brilliantdirectories.com
  • Network accessline 1076
    - **API Docs:** https://support.brilliantdirectories.com/support/solutions/articles/12000108045

mcp/index.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 9
    *  * Usage:  *   brilliant-directories-mcp --api-key YOUR_KEY --url https://your-site.com
  • Network accessline 10
    * Usage:  *   brilliant-directories-mcp --api-key YOUR_KEY --url https://your-site.com  *
  • Network accessline 11
    *   brilliant-directories-mcp --api-key YOUR_KEY --url https://your-site.com
  • Network accessline 12
    [Credential-related source omitted]
  • Network accessline 13
    [Credential-related source omitted]
  • Network accessline 14
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 168
    // Trim + strip trailing slashes. Customer ticket #578506: trailing-slash on // the env var (`https://site.com/`) was bypassing the strip in setup mode,
  • Network accessline 169
    // the env var (`https://site.com/`) was bypassing the strip in setup mode,
  • Network accessline 170
    // breaking URL composition downstream. Single source of truth used by // parseArgs, the setup wizard, and the request boundary in makeRequest. // Whatever protocol the user supplied (`http://`, `https://`, or none) is
  • Network accessline 171
    // parseArgs, the setup wizard, and the request boundary in makeRequest. // Whatever protocol the user supplied (`http://`, `https://`, or none) is // respected as-is; this helper does not coerce.
  • Network accessline 172
    // Whatever protocol the user supplied (`http://`, `https://`, or none) is
  • Network accessline 220
    const timer = setTimeout(() => ctl.abort(), 5000);   try {     const response = await fetch(url, {
  • Network accessline 221
    try {     const response = await fetch(url, {       headers: { Range: "bytes=0-65535", "User-Agent": "brilliant-directories-mcp" },
  • Network accessline 222
    const response = await fetch(url, {
  • Access to secretsline 553
    [Credential-related source omitted]
  • Network accessline 588
    // Normalize URL once before any code path branches — applies to setup,   // verify, and run modes. Single source of truth at `normalizeUrl()`.   // Customer ticket #578506: trailing slash on the env var (`https://site.com/`)
  • Network accessline 589
    // verify, and run modes. Single source of truth at `normalizeUrl()`.   // Customer ticket #578506: trailing slash on the env var (`https://site.com/`)   // was bypassing the strip in setup mode and causing connection failures
  • Network accessline 590
    // Customer ticket #578506: trailing slash on the env var (`https://site.com/`)
  • Access to secretsline 602
    [Credential-related source omitted]
  • Network accessline 605
    }   if (!config.apiUrl) {     console.error("Error: Site URL required. Use --url https://your-site.com or set BD_SITE_URL env var (BD_API_URL also supported as a legacy alias).");
  • Network accessline 606
    if (!config.apiUrl) {     console.error("Error: Site URL required. Use --url https://your-site.com or set BD_SITE_URL env var (BD_API_URL also supported as a legacy alias).");     console.error("Run with --help for usage.");
  • Network accessline 607
    console.error("Error: Site URL required. Use --url https://your-site.com or set BD_SITE_URL env var (BD_API_URL also supported as a legacy alias).");
  • Network accessline 613
    // Several helpers (`getPostTypesCached`, `getWebsiteInfoCached`,   // `_readLinkedPostMeta`, etc.) accept a domain string and concatenate   // it as `https://${domain}` internally. Set this once at startup.
  • Network accessline 615
    // it as `https://${domain}` internally. Set this once at startup.
  • Access to secretsline 638
    [Credential-related source omitted]
  • Network accessline 642
    Otherwise prompts interactively for any missing value.   --api-key KEY    Your BD API key (or set BD_API_KEY env var)   --url URL        Your BD site URL, e.g. https://mysite.com (or BD_API_URL env var)
  • Network accessline 643
    [Credential-related source omitted]
  • Access to secretsline 643
    [Credential-related source omitted]
  • Network accessline 644
    --url URL        Your BD site URL, e.g. https://mysite.com (or BD_API_URL env var)
  • Network accessline 657
    Get an API key: BD Admin > Developer Hub > Generate API Key Docs: https://github.com/brilliantdirectories/brilliant-directories-mcp`);
  • Network accessline 658
    Docs: https://github.com/brilliantdirectories/brilliant-directories-mcp`);
  • Network accessline 671
    }   console.error(`Error: OpenAPI spec not found at ${specPath}`);   console.error(`This is a packaging bug - please open an issue at https://github.com/brilliantdirectories/brilliant-directories-mcp/issues`);
  • Network accessline 672
    console.error(`Error: OpenAPI spec not found at ${specPath}`);   console.error(`This is a packaging bug - please open an issue at https://github.com/brilliantdirectories/brilliant-directories-mcp/issues`);   process.exit(1);
  • Network accessline 673
    console.error(`This is a packaging bug - please open an issue at https://github.com/brilliantdirectories/brilliant-directories-mcp/issues`);
  • Network accessline 3017
    if (cached && (Date.now() - cached.fetchedAt) < POST_TYPES_TTL_MS) return cached.rows;   try {     const url = new URL(`/api/v2/data_categories/get`, `https://${domain}`);
  • Network accessline 3018
    try {     const url = new URL(`/api/v2/data_categories/get`, `https://${domain}`);     url.searchParams.set("limit", "100");
  • Network accessline 3019
    [Credential-related source omitted]
  • Network accessline 3020
    [Credential-related source omitted]
  • Network accessline 3021
    [Credential-related source omitted]
  • Network accessline 3033
    if (cached && (Date.now() - cached.fetchedAt) < POST_TYPES_TTL_MS) return cached.website_id;   try {     const url = new URL(`/api/v2/site_info/get`, `https://${domain}`);
  • Network accessline 3034
    [Credential-related source omitted]
  • Network accessline 3035
    [Credential-related source omitted]
  • Network accessline 3036
    [Credential-related source omitted]
  • Network accessline 3086
    async function _readLinkedPostMeta(domain, apiKey, seoId) {   try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3087
    try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);     url.searchParams.append("property[]", "database");
  • Network accessline 3088
    const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3094
    [Credential-related source omitted]
  • Network accessline 3095
    [Credential-related source omitted]
  • Network accessline 3096
    [Credential-related source omitted]
  • Network accessline 3109
    async function _findPagesByLinkedPostType(domain, apiKey, linkedPostType) {   try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3110
    try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);     url.searchParams.append("property[]", "database");
  • Network accessline 3111
    const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3120
    [Credential-related source omitted]
  • Network accessline 3121
    [Credential-related source omitted]
  • Network accessline 3122
    [Credential-related source omitted]
  • Network accessline 3141
    async function _readSeoTypeForId(domain, apiKey, seoId) {   try {     const url = new URL(`/api/v2/list_seo/get/${encodeURIComponent(String(seoId))}`, `https://${domain}`);
  • Network accessline 3142
    [Credential-related source omitted]
  • Network accessline 3143
    [Credential-related source omitted]
  • Network accessline 3144
    [Credential-related source omitted]
  • Network accessline 3154
    const deleted = [];   try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3155
    try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);     url.searchParams.append("property[]", "database");
  • Network accessline 3156
    const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3162
    [Credential-related source omitted]
  • Network accessline 3163
    [Credential-related source omitted]
  • Network accessline 3164
    [Credential-related source omitted]
  • Network accessline 3170
    await Promise.all(targets.map(async (r) => {       try {         const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);
  • Network accessline 3171
    try {         const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);         const form = new URLSearchParams();
  • Network accessline 3172
    const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);
  • Network accessline 3175
    form.set("database", "list_seo");         form.set("database_id", String(seoId));         const dr = await fetch(delUrl.toString(), {
  • Network accessline 3176
    form.set("database_id", String(seoId));         const dr = await fetch(delUrl.toString(), {           method: "DELETE",
  • Network accessline 3177
    const dr = await fetch(delUrl.toString(), {
  • Network accessline 3207
    }   try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3208
    try {     const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);     url.searchParams.append("property[]", "database");
  • Network accessline 3209
    const url = new URL(`/api/v2/users_meta/get`, `https://${domain}`);
  • Network accessline 3215
    [Credential-related source omitted]
  • Network accessline 3216
    [Credential-related source omitted]
  • Network accessline 3217
    [Credential-related source omitted]
  • Network accessline 3232
    for (const r of targets) {       try {         const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);
  • Network accessline 3233
    try {         const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);         const form = new URLSearchParams();
  • Network accessline 3234
    const delUrl = new URL(`/api/v2/users_meta/delete`, `https://${domain}`);
  • Network accessline 3237
    form.set("database", String(database));         form.set("database_id", String(databaseId));         const dr = await fetch(delUrl.toString(), {
  • Network accessline 3238
    form.set("database_id", String(databaseId));         const dr = await fetch(delUrl.toString(), {           method: "DELETE",
  • Network accessline 3239
    const dr = await fetch(delUrl.toString(), {
  • Network accessline 3289
    async function _findRedirectByOldFilename(domain, apiKey, oldFilename) {   try {     const url = new URL(`/api/v2/redirect_301/get`, `https://${domain}`);
  • Network accessline 3290
    try {     const url = new URL(`/api/v2/redirect_301/get`, `https://${domain}`);     url.searchParams.append("property[]", "old_filename");
  • Network accessline 3291
    const url = new URL(`/api/v2/redirect_301/get`, `https://${domain}`);
  • Network accessline 3294
    [Credential-related source omitted]
  • Network accessline 3295
    [Credential-related source omitted]
  • Network accessline 3296
    [Credential-related source omitted]
  • Network accessline 3313
    return await _updateRedirectDestination(domain, apiKey, existing.redirect_id, newFilename);     }     const url = new URL(`/api/v2/redirect_301/create`, `https://${domain}`);
  • Network accessline 3314
    }     const url = new URL(`/api/v2/redirect_301/create`, `https://${domain}`);     const form = new URLSearchParams();
  • Network accessline 3315
    const url = new URL(`/api/v2/redirect_301/create`, `https://${domain}`);
  • Network accessline 3319
    form.set("type", "custom");     form.set("db_id", String(seoId));     const resp = await fetch(url.toString(), {
  • Network accessline 3320
    form.set("db_id", String(seoId));     const resp = await fetch(url.toString(), {       method: "POST",
  • Network accessline 3321
    const resp = await fetch(url.toString(), {
  • Network accessline 3335
    async function _updateRedirectDestination(domain, apiKey, redirectId, newFilename) {   try {     const url = new URL(`/api/v2/redirect_301/update`, `https://${domain}`);
  • Network accessline 3336
    try {     const url = new URL(`/api/v2/redirect_301/update`, `https://${domain}`);     const form = new URLSearchParams();
  • Network accessline 3337
    const url = new URL(`/api/v2/redirect_301/update`, `https://${domain}`);
  • Network accessline 3339
    form.set("redirect_id", redirectId);     form.set("new_filename", newFilename);     const resp = await fetch(url.toString(), {
  • Network accessline 3340
    form.set("new_filename", newFilename);     const resp = await fetch(url.toString(), {       method: "PUT",
  • Network accessline 3341
    const resp = await fetch(url.toString(), {
  • Network accessline 3353
    const existing = await _findRedirectByOldFilename(domain, apiKey, oldFilename);     if (!existing) return { ok: true };     const url = new URL(`/api/v2/redirect_301/delete`, `https://${domain}`);
  • Network accessline 3354
    if (!existing) return { ok: true };     const url = new URL(`/api/v2/redirect_301/delete`, `https://${domain}`);     const form = new URLSearchParams();
  • Network accessline 3355
    const url = new URL(`/api/v2/redirect_301/delete`, `https://${domain}`);
  • Network accessline 3356
    const form = new URLSearchParams();     form.set("redirect_id", existing.redirect_id);     const resp = await fetch(url.toString(), {
  • Network accessline 3357
    form.set("redirect_id", existing.redirect_id);     const resp = await fetch(url.toString(), {       method: "DELETE",
  • Network accessline 3358
    const resp = await fetch(url.toString(), {
  • Network accessline 4006
    async function _getFormFieldRecordById(domain, apiKey, fieldId) {   if (!fieldId) return null;   const url = `https://${domain}/api/v2/form_fields/get?field_id=${encodeURIComponent(fieldId)}`;
  • Network accessline 4008
    const url = `https://${domain}/api/v2/form_fields/get?field_id=${encodeURIComponent(fieldId)}`;
  • Network accessline 4013
    const timeout = setTimeout(() => ctl.abort(), 5000);   try {     const resp = await fetch(url, {
  • Network accessline 4014
    [Credential-related source omitted]
  • Network accessline 4015
    const resp = await fetch(url, {
  • Network accessline 4187
    let normalized = baseUrl;   if (!/^https?:\/\//i.test(normalized)) normalized = `https://${normalized}`;
  • Network accessline 4188
    if (!/^https?:\/\//i.test(normalized)) normalized = `https://${normalized}`;
  • Network accessline 4191
    let is24h = false;   try {     const resp = await fetch(`${normalized}/api/v2/site_info/get`, {
  • Network accessline 4192
    try {     const resp = await fetch(`${normalized}/api/v2/site_info/get`, {       method: "GET",
  • Network accessline 4193
    const resp = await fetch(`${normalized}/api/v2/site_info/get`, {
  • Network accessline 4396
    function _tryPunycodeDecode(label) {   try {     const u = new URL(`http://${label}.invalid`);
  • Network accessline 4397
    try {     const u = new URL(`http://${label}.invalid`);     const host = u.hostname; // already lowercased + IDN-decoded
  • Network accessline 4398
    const u = new URL(`http://${label}.invalid`);
  • Possible obfuscationline 4426
    if (/[\s<U+00AD><U+200B>-<U+200F><U+2060>-<U+2064><U+FEFF>]/.test(slug)) {
  • Access to secretsline 5076
    [Credential-related source omitted]
  • Network accessline 5248
    } else {     while (!apiUrl) {       const raw = await prompt("Your BD site URL (e.g. https://mysite.com): ");
  • Network accessline 5249
    while (!apiUrl) {       const raw = await prompt("Your BD site URL (e.g. https://mysite.com): ");       if (!raw) {
  • Network accessline 5250
    const raw = await prompt("Your BD site URL (e.g. https://mysite.com): ");
  • Network accessline 5600
    alert_accent:   "Urgency accent - errors, warnings, sale badges, limited-time callouts, elements that command immediate attention.",             tint_rule:      "Derive lighter or darker tints from any palette color for backgrounds, hover s
  • Network accessline 5601
    tint_rule:      "Derive lighter or darker tints from any palette color for backgrounds, hover states, borders, or low-emphasis UI layers. Do NOT introduce new unrelated hues.",             font_rule:      "body.font and heading_font are alr
  • Network accessline 5602
    font_rule:      "body.font and heading_font are already globally loaded on the site - do NOT redefine them in content_css. To switch to a different family on a specific page, load the font in the WebPage's content_head field as a <link rel=
  • Network accessline 5605
    // If any BD fetches failed outright (network / non-200), surface it so the         // agent knows some values are fallbacks, not live site data. A missing row         // on a successful fetch (slot just isn't set) is NOT a failure - fallba
  • Network accessline 5606
    // agent knows some values are fallbacks, not live site data. A missing row         // on a successful fetch (slot just isn't set) is NOT a failure - fallback         // silently applies; that's the documented design.
  • Network accessline 5607
    // on a successful fetch (slot just isn't set) is NOT a failure - fallback

mcp/openapi/bd-api.json

  • Network accessline 4
    "title": "Brilliant Directories API",     "version": "2.0.0",     "description": "Universal API for Brilliant Directories websites. Manage members, content, leads, email templates, categories, and more. Works with any BD-powered site - just
  • Network accessline 5
    "version": "2.0.0",     "description": "Universal API for Brilliant Directories websites. Manage members, content, leads, email templates, categories, and more. Works with any BD-powered site - just provide your site URL and API key.\n\n## 
  • Network accessline 6
    "description": "Universal API for Brilliant Directories websites. Manage members, content, leads, email templates, categories, and more. Works with any BD-powered site - just provide your site URL and API key.\n\n## Authentication\nAll requ
  • Network accessline 7
    "contact": {       "name": "Brilliant Directories",       "url": "https://www.brilliantdirectories.com",
  • Network accessline 8
    "name": "Brilliant Directories",       "url": "https://www.brilliantdirectories.com",       "email": "support@brilliantdirectories.com"
  • Network accessline 9
    "url": "https://www.brilliantdirectories.com",
  • Network accessline 14
    },     "x-api-version-note": "The info.version field represents BD's REST API version (currently v2 - /api/v2/* endpoints), NOT this MCP wrapper's release version.",     "x-mcp-wrapper-version": "See https://www.npmjs.com/package/brilliant-
  • Network accessline 15
    "x-api-version-note": "The info.version field represents BD's REST API version (currently v2 - /api/v2/* endpoints), NOT this MCP wrapper's release version.",     "x-mcp-wrapper-version": "See https://www.npmjs.com/package/brilliant-directo
  • Network accessline 16
    "x-mcp-wrapper-version": "See https://www.npmjs.com/package/brilliant-directories-mcp for the current MCP wrapper version (npm package)."
  • Network accessline 22
    "variables": {         "bd_site_url": {           "default": "https://your-site.com",
  • Network accessline 23
    "bd_site_url": {           "default": "https://your-site.com",           "description": "The full URL of your BD-powered website (e.g. https://yoursite.com)"
  • Network accessline 24
    "default": "https://your-site.com",
  • Network accessline 25
    "description": "The full URL of your BD-powered website (e.g. https://yoursite.com)"
  • Network accessline 2035
    }         },         "description": "Create a member. Writes live data. Welcome email silent by default - set `send_email_notifications=1` to trigger.\n\n**Required:** `email`, `password`, `subscription_id`.\n\n**Use when:** adding members 
  • Network accessline 2036
    },         "description": "Create a member. Writes live data. Welcome email silent by default - set `send_email_notifications=1` to trigger.\n\n**Required:** `email`, `password`, `subscription_id`.\n\n**Use when:** adding members outside BD
  • Network accessline 2037
    "description": "Create a member. Writes live data. Welcome email silent by default - set `send_email_notifications=1` to trigger.\n\n**Required:** `email`, `password`, `subscription_id`.\n\n**Use when:** adding members outside BD signup - C
  • Network accessline 2042
    "operationId": "updateUser",         "summary": "Update an existing member/user",         "description": "Update a member. PATCH semantics - omitted fields untouched; send only what changes.\n\n**Required:** `user_id`.\n\n**Disambiguation:*
  • Network accessline 2043
    "summary": "Update an existing member/user",         "description": "Update a member. PATCH semantics - omitted fields untouched; send only what changes.\n\n**Required:** `user_id`.\n\n**Disambiguation:** apply **Rule: Resource disambiguati
  • Network accessline 2044
    "description": "Update a member. PATCH semantics - omitted fields untouched; send only what changes.\n\n**Required:** `user_id`.\n\n**Disambiguation:** apply **Rule: Resource disambiguation** when the user names this member by description (
  • Network accessline 6271
    "form_target": {                     "type": "string",                     "description": "Destination URL. **Required when `form_action_type=redirect`** — wrapper refuses the call without it. Full URL with `https://`, e.g. `https://mysite.
  • Network accessline 6272
    "type": "string",                     "description": "Destination URL. **Required when `form_action_type=redirect`** — wrapper refuses the call without it. Full URL with `https://`, e.g. `https://mysite.com/thanks`."                   },
  • Network accessline 6273
    "description": "Destination URL. **Required when `form_action_type=redirect`** — wrapper refuses the call without it. Full URL with `https://`, e.g. `https://mysite.com/thanks`."
  • Network accessline 6366
    "form_target": {                     "type": "string",                     "description": "Destination URL, required when `form_action_type=redirect`, ignored otherwise. Full URL with `https://`."
  • Network accessline 6367
    "type": "string",                     "description": "Destination URL, required when `form_action_type=redirect`, ignored otherwise. Full URL with `https://`."                   },
  • Network accessline 6368
    "description": "Destination URL, required when `form_action_type=redirect`, ignored otherwise. Full URL with `https://`."
  • Network accessline 9424
    "operationId": "getSiteInfo",         "summary": "Get site-level identity, locale, currency, and brand-image URLs",         "description": "Returns the site's own identity and locale context — what kind of directory this is, who it serves, 
  • Network accessline 9425
    "summary": "Get site-level identity, locale, currency, and brand-image URLs",         "description": "Returns the site's own identity and locale context — what kind of directory this is, who it serves, the formatting conventions to respect,
  • Network accessline 9426
    "description": "Returns the site's own identity and locale context — what kind of directory this is, who it serves, the formatting conventions to respect, and the URLs of branding assets. Read-only, no params. **Call this once on the first 
  • Network accessline 9459
    "format": "uri"             },             "description": "Single bare canonical image URL (e.g. `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`). Must respond with HTTP 200/206 to a Range request for the first 64KB. Provide 
  • Network accessline 9460
    },             "description": "Single bare canonical image URL (e.g. `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`). Must respond with HTTP 200/206 to a Range request for the first 64KB. Provide `url` OR `urls`."           
  • Network accessline 9461
    "description": "Single bare canonical image URL (e.g. `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`). Must respond with HTTP 200/206 to a Range request for the first 64KB. Provide `url` OR `urls`."
  • Network accessline 9559
    "operationId": "getBrandKit",         "summary": "Get the site's brand kit (colors + fonts) for design decisions",         "description": "Return a compact, semantically-labeled brand kit for this BD site - colors (body / primary / dark / m
  • Network accessline 9560
    "summary": "Get the site's brand kit (colors + fonts) for design decisions",         "description": "Return a compact, semantically-labeled brand kit for this BD site - colors (body / primary / dark / muted / success / warm / alert accents,
  • Network accessline 9561
    "description": "Return a compact, semantically-labeled brand kit for this BD site - colors (body / primary / dark / muted / success / warm / alert accents, card surface) + fonts (body + heading Google Fonts). **Call this ONCE at the start o

mcp/openapi/mcp-instructions.md

  • Network accessline 150
    **HTTP status codes and error shapes agents should recognize.** Authoritative reference: https://support.brilliantdirectories.com/support/solutions/articles/12000108046 (BD's public API overview article - auth, rate limits, pagination, filt
  • Network accessline 503
    **Verify `<img>` sources return 200 before embedding (if runtime can fetch).** Broken images are permanent in delivered email — clients cache 404s on first open. Without fetch capability: stick to canonical Pexels URLs (`https://images.pexe
  • Network accessline 511
    **After every successful `createEmailTemplate` or `updateEmailTemplate`, surface the BD admin edit URL to the user.** Pattern: `https://ww2.managemydirectory.com/admin/emailTemplates.php?faction=edit&email=<email_id>&newsite=<website_id>`. 
  • Network accessline 515
    **After every successful `createSingleImagePost` / `updateSingleImagePost` / `createMultiImagePost` / `updateMultiImagePost`, surface the BD admin edit URL to the user using exactly this pattern:** `https://ww2.managemydirectory.com/admin/v
  • Network accessline 947
    `default_checkout_url` varies by site (`checkout`, `join`, `signup`, …) — use the returned value, never hardcoded. `full_url` has no trailing slash; single-`/` joins. E.g. `https://site.com/checkout/2`.
  • Network accessline 1003
    - **Orientation gate for Pexels-sourced feature image slots.** `post_image`, `hero_image`, and multi-image album photos require landscape — verify via `getImageDimensions` per **Rule: Image dimensions**. Inline `<img>` in Froala body (`post
  • Network accessline 1004
    - **Pexels sourcing workflow.** Use this when an image is needed and **Rule: Image sourcing** routes to Pexels. Pexels does NOT respect keyword orientation filters (no `wide`/`landscape`/`horizontal` keyword reliably surfaces landscape-only
  • Network accessline 1005
    1. `WebSearch query="site:pexels.com/photo <2-3 word topic>"` — 2-3 words, every word must carry topic information (no filler, no redundant adjectives); 2 words when the noun is already specific (`"pilates reformer"`), 3 words when it isn't
  • Network accessline 1006
    2. Pick a candidate at a **random index** in the first ~10 results rather than defaulting to #1 — anti-clustering across runs on the same site.   3. Extract `<id>` (trailing digits before the final `/`) and construct the bare canonical `htt
  • Network accessline 1007
    3. Extract `<id>` (trailing digits before the final `/`) and construct the bare canonical `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg`.
  • Network accessline 1040
    - **`update*` self-exclusion.** When updating an existing record, exclude that record's own row from the dedup result set: for `listSingleImagePosts` hits, match by `post_id`; for `listMultiImagePostPhotos` hits, match by `photo_id`. Hits o
  • Network accessline 1042
    - **URL form to check.** Use the bare canonical Pexels URL exactly as it gets stored: `https://images.pexels.com/photos/<id>/pexels-photo-<id>.jpeg` (or `.png`). Exact match — no query string, no `?w=` suffix.
  • Network accessline 1244
    - **Email body — no `<style>` blocks.** Outlook strips them. Use inline `style=""` attributes only. See **Rule: Email template recipe** for full email-client constraints. - **Widget exception:** `widget_data`, `widget_style`, `widget_javasc
  • Network accessline 1245
    - **Widget exception:** `widget_data`, `widget_style`, `widget_javascript` are exempt from all listed patterns. Widgets legitimately need JS and scoped CSS, and anyone with API permission to write widgets already has admin capability. Warn 

mcp/package-lock.json

  • Network accessline 21
    "node_modules/@hono/node-server": {       "version": "1.19.14",       "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz",
  • Network accessline 22
    "version": "1.19.14",       "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz",       "integrity": "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==",
  • Network accessline 23
    "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz",
  • Network accessline 33
    "node_modules/@modelcontextprotocol/sdk": {       "version": "1.29.0",       "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz",
  • Network accessline 34
    "version": "1.29.0",       "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz",       "integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==",
  • Network accessline 35
    "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz",
  • Network accessline 73
    "node_modules/accepts": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
  • Network accessline 74
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",       "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
  • Network accessline 75
    "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
  • Network accessline 86
    "node_modules/ajv": {       "version": "8.18.0",       "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
  • Network accessline 87
    "version": "8.18.0",       "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",       "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
  • Network accessline 88
    "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
  • Network accessline 97
    "funding": {         "type": "github",         "url": "https://github.com/sponsors/epoberezkin"
  • Network accessline 98
    "type": "github",         "url": "https://github.com/sponsors/epoberezkin"       }
  • Network accessline 99
    "url": "https://github.com/sponsors/epoberezkin"
  • Network accessline 102
    "node_modules/ajv-formats": {       "version": "3.0.1",       "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
  • Network accessline 103
    "version": "3.0.1",       "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",       "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
  • Network accessline 104
    "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
  • Network accessline 119
    "node_modules/body-parser": {       "version": "2.2.2",       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
  • Network accessline 120
    "version": "2.2.2",       "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",       "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
  • Network accessline 121
    "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
  • Network accessline 138
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 139
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 140
    "url": "https://opencollective.com/express"
  • Network accessline 143
    "node_modules/bytes": {       "version": "3.1.2",       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
  • Network accessline 144
    "version": "3.1.2",       "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",       "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
  • Network accessline 145
    "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
  • Network accessline 152
    "node_modules/call-bind-apply-helpers": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 153
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuM
  • Network accessline 154
    "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 165
    "node_modules/call-bound": {       "version": "1.0.4",       "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
  • Network accessline 166
    "version": "1.0.4",       "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",       "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
  • Network accessline 167
    "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
  • Network accessline 176
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 177
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 178
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 181
    "node_modules/content-disposition": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
  • Network accessline 182
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",       "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
  • Network accessline 183
    "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
  • Network accessline 189
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 190
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 191
    "url": "https://opencollective.com/express"
  • Network accessline 194
    "node_modules/content-type": {       "version": "1.0.5",       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
  • Network accessline 195
    "version": "1.0.5",       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",       "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
  • Network accessline 196
    "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
  • Network accessline 203
    "node_modules/cookie": {       "version": "0.7.2",       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
  • Network accessline 204
    "version": "0.7.2",       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",       "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
  • Network accessline 205
    "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
  • Network accessline 212
    "node_modules/cookie-signature": {       "version": "1.2.2",       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
  • Network accessline 213
    "version": "1.2.2",       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",       "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
  • Network accessline 214
    "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
  • Network accessline 221
    "node_modules/cors": {       "version": "2.8.6",       "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
  • Network accessline 222
    "version": "2.8.6",       "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",       "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
  • Network accessline 223
    "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
  • Network accessline 233
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 234
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 235
    "url": "https://opencollective.com/express"
  • Network accessline 238
    "node_modules/cross-spawn": {       "version": "7.0.6",       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
  • Network accessline 239
    "version": "7.0.6",       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",       "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
  • Network accessline 240
    "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
  • Network accessline 252
    "node_modules/debug": {       "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 253
    "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",       "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  • Network accessline 254
    "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 269
    "node_modules/depd": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
  • Network accessline 270
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",       "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
  • Network accessline 271
    "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
  • Network accessline 278
    "node_modules/dunder-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 279
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  • Network accessline 280
    "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 292
    "node_modules/ee-first": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
  • Network accessline 293
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
  • Network accessline 294
    "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
  • Network accessline 298
    "node_modules/encodeurl": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
  • Network accessline 299
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",       "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
  • Network accessline 300
    "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
  • Network accessline 307
    "node_modules/es-define-property": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 308
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  • Network accessline 309
    "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 316
    "node_modules/es-errors": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 317
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  • Network accessline 318
    "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 325
    "node_modules/es-object-atoms": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 326
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  • Network accessline 327
    "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 337
    "node_modules/escape-html": {       "version": "1.0.3",       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
  • Network accessline 338
    "version": "1.0.3",       "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",       "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
  • Network accessline 339
    "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
  • Network accessline 343
    "node_modules/etag": {       "version": "1.8.1",       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
  • Network accessline 344
    "version": "1.8.1",       "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",       "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
  • Network accessline 345
    "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
  • Network accessline 352
    "node_modules/eventsource": {       "version": "3.0.7",       "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",
  • Network accessline 353
    "version": "3.0.7",       "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",       "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
  • Network accessline 354
    "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",
  • Network accessline 364
    "node_modules/eventsource-parser": {       "version": "3.0.7",       "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.7.tgz",
  • Network accessline 365
    "version": "3.0.7",       "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.7.tgz",       "integrity": "sha512-zwxwiQqexizSXFZV13zMiEtW1E3lv7RlUv+1f5FBiR4x7wFhEjm3aFTyYkZQWzyN08WnPdox015GoRH5D/E5YA==",
  • Network accessline 366
    "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.7.tgz",
  • Network accessline 373
    "node_modules/express": {       "version": "5.2.1",       "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
  • Network accessline 374
    "version": "5.2.1",       "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",       "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
  • Network accessline 375
    "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
  • Network accessline 411
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 412
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 413
    "url": "https://opencollective.com/express"
  • Network accessline 416
    "node_modules/express-rate-limit": {       "version": "8.3.2",       "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.2.tgz",
  • Network accessline 417
    "version": "8.3.2",       "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.2.tgz",       "integrity": "sha512-77VmFeJkO0/rvimEDuUC5H30oqUC4EyOhyGccfqoLebB0oiEYfM7nwPrsDsBL1gsTpwfzX8SFy2MT3TDyRq+bg==",
  • Network accessline 418
    "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.2.tgz",
  • Network accessline 426
    },       "funding": {         "url": "https://github.com/sponsors/express-rate-limit"
  • Network accessline 427
    "funding": {         "url": "https://github.com/sponsors/express-rate-limit"       },
  • Network accessline 428
    "url": "https://github.com/sponsors/express-rate-limit"
  • Network accessline 434
    "node_modules/fast-deep-equal": {       "version": "3.1.3",       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  • Network accessline 435
    "version": "3.1.3",       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
  • Network accessline 436
    "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
  • Network accessline 440
    "node_modules/fast-uri": {       "version": "3.1.0",       "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
  • Network accessline 441
    "version": "3.1.0",       "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",       "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
  • Network accessline 442
    "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
  • Network accessline 445
    {           "type": "github",           "url": "https://github.com/sponsors/fastify"
  • Network accessline 446
    "type": "github",           "url": "https://github.com/sponsors/fastify"         },
  • Network accessline 447
    "url": "https://github.com/sponsors/fastify"
  • Network accessline 449
    {           "type": "opencollective",           "url": "https://opencollective.com/fastify"
  • Network accessline 450
    "type": "opencollective",           "url": "https://opencollective.com/fastify"         }
  • Network accessline 451
    "url": "https://opencollective.com/fastify"
  • Network accessline 456
    "node_modules/finalhandler": {       "version": "2.1.1",       "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
  • Network accessline 457
    "version": "2.1.1",       "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",       "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
  • Network accessline 458
    "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
  • Network accessline 472
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 473
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 474
    "url": "https://opencollective.com/express"
  • Network accessline 477
    "node_modules/forwarded": {       "version": "0.2.0",       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
  • Network accessline 478
    "version": "0.2.0",       "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",       "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
  • Network accessline 479
    "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
  • Network accessline 486
    "node_modules/fresh": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
  • Network accessline 487
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",       "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
  • Network accessline 488
    "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
  • Network accessline 495
    "node_modules/function-bind": {       "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 496
    "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  • Network accessline 497
    "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 499
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 500
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 501
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 504
    "node_modules/get-intrinsic": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 505
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  • Network accessline 506
    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 523
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 524
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 525
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 528
    "node_modules/get-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 529
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  • Network accessline 530
    "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 541
    "node_modules/gopd": {       "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 542
    "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  • Network accessline 543
    "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 548
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 549
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 550
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 553
    "node_modules/has-symbols": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 554
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  • Network accessline 555
    "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 560
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 561
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 562
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 565
    "node_modules/hasown": {       "version": "2.0.3",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
  • Network accessline 566
    "version": "2.0.3",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",       "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
  • Network accessline 567
    "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
  • Network accessline 577
    "node_modules/hono": {       "version": "4.12.14",       "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.14.tgz",
  • Network accessline 578
    "version": "4.12.14",       "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.14.tgz",       "integrity": "sha512-am5zfg3yu6sqn5yjKBNqhnTX7Cv+m00ox+7jbaKkrLMRJ4rAdldd1xPd/JzbBWspqaQv6RSTrgFN95EsfhC+7w==",
  • Network accessline 579
    "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.14.tgz",
  • Network accessline 586
    "node_modules/http-errors": {       "version": "2.0.1",       "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
  • Network accessline 587
    "version": "2.0.1",       "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",       "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
  • Network accessline 588
    "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
  • Network accessline 601
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 602
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 603
    "url": "https://opencollective.com/express"
  • Network accessline 606
    "node_modules/iconv-lite": {       "version": "0.7.2",       "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
  • Network accessline 607
    "version": "0.7.2",       "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",       "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
  • Network accessline 608
    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
  • Network accessline 617
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 618
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 619
    "url": "https://opencollective.com/express"
  • Network accessline 622
    "node_modules/inherits": {       "version": "2.0.4",       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
  • Network accessline 623
    "version": "2.0.4",       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
  • Network accessline 624
    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
  • Network accessline 628
    "node_modules/ip-address": {       "version": "10.1.0",       "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
  • Network accessline 629
    "version": "10.1.0",       "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",       "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
  • Network accessline 630
    "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
  • Network accessline 637
    "node_modules/ipaddr.js": {       "version": "1.9.1",       "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
  • Network accessline 638
    "version": "1.9.1",       "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",       "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
  • Network accessline 639
    "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
  • Network accessline 646
    "node_modules/is-promise": {       "version": "4.0.0",       "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
  • Network accessline 647
    "version": "4.0.0",       "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",       "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
  • Network accessline 648
    "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
  • Network accessline 652
    "node_modules/isexe": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
  • Network accessline 653
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
  • Network accessline 654
    "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
  • Network accessline 658
    "node_modules/jose": {       "version": "6.2.2",       "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz",
  • Network accessline 659
    "version": "6.2.2",       "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz",       "integrity": "sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==",
  • Network accessline 660
    "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz",
  • Network accessline 662
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/panva"
  • Network accessline 663
    "funding": {         "url": "https://github.com/sponsors/panva"       }
  • Network accessline 664
    "url": "https://github.com/sponsors/panva"
  • Network accessline 667
    "node_modules/json-schema-traverse": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
  • Network accessline 668
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",       "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
  • Network accessline 669
    "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
  • Network accessline 673
    "node_modules/json-schema-typed": {       "version": "8.0.2",       "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
  • Network accessline 674
    "version": "8.0.2",       "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",       "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
  • Network accessline 675
    "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
  • Network accessline 679
    "node_modules/math-intrinsics": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 680
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  • Network accessline 681
    "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 688
    "node_modules/media-typer": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
  • Network accessline 689
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",       "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
  • Network accessline 690
    "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
  • Network accessline 697
    "node_modules/merge-descriptors": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
  • Network accessline 698
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",       "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
  • Network accessline 699
    "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
  • Network accessline 704
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 705
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 706
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 709
    "node_modules/mime-db": {       "version": "1.54.0",       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
  • Network accessline 710
    "version": "1.54.0",       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",       "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
  • Network accessline 711
    "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
  • Network accessline 718
    "node_modules/mime-types": {       "version": "3.0.2",       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
  • Network accessline 719
    "version": "3.0.2",       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",       "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
  • Network accessline 720
    "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
  • Network accessline 729
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 730
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 731
    "url": "https://opencollective.com/express"
  • Network accessline 734
    "node_modules/ms": {       "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 735
    "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
  • Network accessline 736
    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 740
    "node_modules/negotiator": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
  • Network accessline 741
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",       "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
  • Network accessline 742
    "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
  • Network accessline 749
    "node_modules/object-assign": {       "version": "4.1.1",       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
  • Network accessline 750
    "version": "4.1.1",       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",       "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
  • Network accessline 751
    "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
  • Network accessline 758
    "node_modules/object-inspect": {       "version": "1.13.4",       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
  • Network accessline 759
    "version": "1.13.4",       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",       "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
  • Network accessline 760
    "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
  • Network accessline 765
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 766
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 767
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 770
    "node_modules/on-finished": {       "version": "2.4.1",       "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
  • Network accessline 771
    "version": "2.4.1",       "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",       "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
  • Network accessline 772
    "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
  • Network accessline 782
    "node_modules/once": {       "version": "1.4.0",       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
  • Network accessline 783
    "version": "1.4.0",       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",       "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
  • Network accessline 784
    "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
  • Network accessline 791
    "node_modules/parseurl": {       "version": "1.3.3",       "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
  • Network accessline 792
    "version": "1.3.3",       "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",       "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
  • Network accessline 793
    "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
  • Network accessline 800
    "node_modules/path-key": {       "version": "3.1.1",       "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  • Network accessline 801
    "version": "3.1.1",       "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",       "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
  • Network accessline 802
    "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
  • Network accessline 809
    "node_modules/path-to-regexp": {       "version": "8.4.2",       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
  • Network accessline 810
    "version": "8.4.2",       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",       "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
  • Network accessline 811
    "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
  • Network accessline 814
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 815
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 816
    "url": "https://opencollective.com/express"
  • Network accessline 819
    "node_modules/pkce-challenge": {       "version": "5.0.1",       "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
  • Network accessline 820
    "version": "5.0.1",       "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",       "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
  • Network accessline 821
    "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
  • Network accessline 828
    "node_modules/proxy-addr": {       "version": "2.0.7",       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
  • Network accessline 829
    "version": "2.0.7",       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",       "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
  • Network accessline 830
    "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
  • Network accessline 841
    "node_modules/qs": {       "version": "6.15.1",       "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
  • Network accessline 842
    "version": "6.15.1",       "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",       "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==",
  • Network accessline 843
    "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
  • Network accessline 851
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 852
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 853
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 856
    "node_modules/range-parser": {       "version": "1.2.1",       "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
  • Network accessline 857
    "version": "1.2.1",       "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",       "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
  • Network accessline 858
    "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
  • Network accessline 865
    "node_modules/raw-body": {       "version": "3.0.2",       "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
  • Network accessline 866
    "version": "3.0.2",       "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",       "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
  • Network accessline 867
    "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
  • Network accessline 880
    "node_modules/require-from-string": {       "version": "2.0.2",       "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
  • Network accessline 881
    "version": "2.0.2",       "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",       "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
  • Network accessline 882
    "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
  • Network accessline 889
    "node_modules/router": {       "version": "2.2.0",       "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
  • Network accessline 890
    "version": "2.2.0",       "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",       "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
  • Network accessline 891
    "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
  • Network accessline 905
    "node_modules/safer-buffer": {       "version": "2.1.2",       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 906
    "version": "2.1.2",       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
  • Network accessline 907
    "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 911
    "node_modules/send": {       "version": "1.2.1",       "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
  • Network accessline 912
    "version": "1.2.1",       "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",       "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
  • Network accessline 913
    "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
  • Network accessline 932
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 933
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 934
    "url": "https://opencollective.com/express"
  • Network accessline 937
    "node_modules/serve-static": {       "version": "2.2.1",       "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
  • Network accessline 938
    "version": "2.2.1",       "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",       "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
  • Network accessline 939
    "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
  • Network accessline 951
    "funding": {         "type": "opencollective",         "url": "https://opencollective.com/express"
  • Network accessline 952
    "type": "opencollective",         "url": "https://opencollective.com/express"       }
  • Network accessline 953
    "url": "https://opencollective.com/express"
  • Network accessline 956
    "node_modules/setprototypeof": {       "version": "1.2.0",       "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
  • Network accessline 957
    "version": "1.2.0",       "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",       "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
  • Network accessline 958
    "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
  • Network accessline 962
    "node_modules/shebang-command": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  • Network accessline 963
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",       "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
  • Network accessline 964
    "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
  • Network accessline 974
    "node_modules/shebang-regex": {       "version": "3.0.0",       "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  • Network accessline 975
    "version": "3.0.0",       "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",       "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
  • Network accessline 976
    "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
  • Network accessline 983
    "node_modules/side-channel": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
  • Network accessline 984
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",       "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
  • Network accessline 985
    "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
  • Network accessline 997
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 998
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 999
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1002
    "node_modules/side-channel-list": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
  • Network accessline 1003
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",       "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
  • Network accessline 1004
    "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
  • Network accessline 1013
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1014
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 1015
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1018
    "node_modules/side-channel-map": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
  • Network accessline 1019
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",       "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
  • Network accessline 1020
    "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
  • Network accessline 1031
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1032
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 1033
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1036
    "node_modules/side-channel-weakmap": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
  • Network accessline 1037
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",       "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
  • Network accessline 1038
    "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
  • Network accessline 1050
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1051
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 1052
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 1055
    "node_modules/statuses": {       "version": "2.0.2",       "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
  • Network accessline 1056
    "version": "2.0.2",       "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",       "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
  • Network accessline 1057
    "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
  • Network accessline 1064
    "node_modules/toidentifier": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
  • Network accessline 1065
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",       "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
  • Network accessline 1066
    "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
  • Network accessline 1073
    "node_modules/type-is": {       "version": "2.0.1",       "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
  • Network accessline 1074
    "version": "2.0.1",       "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",       "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
  • Network accessline 1075
    "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
  • Network accessline 1087
    "node_modules/unpipe": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
  • Network accessline 1088
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",       "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
  • Network accessline 1089
    "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
  • Network accessline 1096
    "node_modules/vary": {       "version": "1.1.2",       "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
  • Network accessline 1097
    "version": "1.1.2",       "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",       "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
  • Network accessline 1098
    "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
  • Network accessline 1105
    "node_modules/which": {       "version": "2.0.2",       "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  • Network accessline 1106
    "version": "2.0.2",       "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",       "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
  • Network accessline 1107
    "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
  • Network accessline 1120
    "node_modules/wrappy": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
  • Network accessline 1121
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
  • Network accessline 1122
    "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
  • Network accessline 1126
    "node_modules/zod": {       "version": "4.3.6",       "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
  • Network accessline 1127
    "version": "4.3.6",       "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",       "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
  • Network accessline 1128
    "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
  • Network accessline 1130
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/colinhacks"
  • Network accessline 1131
    "funding": {         "url": "https://github.com/sponsors/colinhacks"       }
  • Network accessline 1132
    "url": "https://github.com/sponsors/colinhacks"
  • Network accessline 1135
    "node_modules/zod-to-json-schema": {       "version": "3.25.2",       "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
  • Network accessline 1136
    "version": "3.25.2",       "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",       "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==",
  • Network accessline 1137
    "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",

mcp/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    "author": "Brilliant Directories <support@brilliantdirectories.com>",   "license": "MIT",   "homepage": "https://github.com/brilliantdirectories/brilliant-directories-mcp#readme",
  • Network accessline 39
    "license": "MIT",   "homepage": "https://github.com/brilliantdirectories/brilliant-directories-mcp#readme",   "repository": {
  • Network accessline 40
    "homepage": "https://github.com/brilliantdirectories/brilliant-directories-mcp#readme",
  • Network accessline 41
    "repository": {     "type": "git",     "url": "git+https://github.com/brilliantdirectories/brilliant-directories-mcp.git",
  • Network accessline 42
    "type": "git",     "url": "git+https://github.com/brilliantdirectories/brilliant-directories-mcp.git",     "directory": "mcp"
  • Network accessline 43
    "url": "git+https://github.com/brilliantdirectories/brilliant-directories-mcp.git",
  • Network accessline 45
    },   "bugs": {     "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp/issues"
  • Network accessline 46
    "bugs": {     "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp/issues"   },
  • Network accessline 47
    "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp/issues"

plugin.json

  • Network accessline 5
    "author": {     "name": "Brilliant Directories",     "url": "https://github.com/brilliantdirectories"
  • Network accessline 6
    "name": "Brilliant Directories",     "url": "https://github.com/brilliantdirectories"   },
  • Network accessline 7
    "url": "https://github.com/brilliantdirectories"
  • Network accessline 8
    },   "homepage": "https://www.brilliantdirectories.com",   "repository": "https://github.com/brilliantdirectories/brilliant-directories-mcp",
  • Network accessline 9
    "homepage": "https://www.brilliantdirectories.com",
  • Network accessline 10
    "repository": "https://github.com/brilliantdirectories/brilliant-directories-mcp",

scripts/build-skill-zip.js

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/extract-instructions.js

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 48
    text = eval(code);

scripts/flatten.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/schema-drift-check.js

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/skill-ref-check.py

  • Executable scriptline 1
    Executable file

scripts/swap-instructions.js

  • Executable scriptline 1
    Executable file

scripts/verify-instructions-match.js

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 30
    const original = eval(code);

server.json

  • Network accessline 1
    {   "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  • Network accessline 2
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  • Network accessline 4
    "description": "Official MCP server for Brilliant Directories — manage members, posts, leads, reviews, and more.",   "repository": {     "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp",
  • Network accessline 5
    "repository": {     "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp",     "source": "github"
  • Network accessline 6
    "url": "https://github.com/brilliantdirectories/brilliant-directories-mcp",
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 25
    {           "name": "BD_SITE_URL",           "description": "Your BD site URL, e.g. https://yoursite.com (BD_API_URL is also accepted as a legacy alias).",
  • Network accessline 26
    "name": "BD_SITE_URL",           "description": "Your BD site URL, e.g. https://yoursite.com (BD_API_URL is also accepted as a legacy alias).",           "isRequired": true,
  • Network accessline 27
    "description": "Your BD site URL, e.g. https://yoursite.com (BD_API_URL is also accepted as a legacy alias).",

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 500 facts
  • Network access in prose of documentationCONTRIBUTING.md:9Low confidence
  • Network access in code of documentationCONTRIBUTING.md:35Low confidence
  • Network access in code of documentationCONTRIBUTING.md:39Low confidence
  • Network access in code of documentationCONTRIBUTING.md:40Low confidence
  • Access to secrets in code of documentationCONTRIBUTING.md:40Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueCONTRIBUTING.md:41Low confidence
  • Network access in prose of documentationCONTRIBUTING.md:49Low confidence
  • Executable script in code of a file that runsDockerfile:1High confidence
  • Network access in a comment of a file that runsDockerfile:13Low confidence
  • Network access in a comment of a file that runsDockerfile:15Low confidence
  • Access to secrets in a comment of a file that runsDockerfile:15Low confidence
  • Network access in code of a file that runsDockerfile:16High confidence
  • Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueDockerfile:16Low confidence
  • Network access in code of a file that runsDockerfile:17High confidence
  • Network access in prose of documentationREADME.md:3Low confidence
  • Network access in prose of documentationREADME.md:4Low confidence
  • Network access in prose of documentationREADME.md:5Low confidence
  • Network access in prose of documentationREADME.md:15Low confidence
  • Network access in prose of documentationREADME.md:16Low confidence
  • Network access in prose of documentationREADME.md:17Low confidence
  • Network access in prose of documentationREADME.md:18Low confidence
  • Network access in prose of documentationREADME.md:19Low confidence
  • Network access in prose of documentationREADME.md:20Low confidence
  • Network access in prose of documentationREADME.md:21Low confidence
  • Network access in prose of documentationREADME.md:26Low confidence
  • Network access in prose of documentationREADME.md:28Low confidence
  • Network access in prose of documentationREADME.md:64Low confidence
  • Network access in prose of documentationREADME.md:65Low confidence
  • Network access in prose of documentationREADME.md:66Low confidence
  • Network access in prose of documentationREADME.md:88Low confidence
  • Network access in prose of documentationREADME.md:91Low confidence
  • Network access in code of documentationREADME.md:101Low confidence
  • Network access in code of documentationREADME.md:102Low confidence
  • Network access in code of documentationREADME.md:103Low confidence
  • Network access in code of documentationREADME.md:104Low confidence
  • Network access in code of documentationREADME.md:105Low confidence
  • Access to secrets in code of documentationREADME.md:105Low confidence
  • Network access in code of documentationREADME.md:106Low confidence
  • Network access in prose of documentationREADME.md:113Low confidence
  • Access to secrets in prose of documentationREADME.md:113Low confidence
  • Network access in prose of documentationREADME.md:123Low confidence
  • Network access in prose of documentationREADME.md:124Low confidence
  • Network access in code of documentationREADME.md:142Low confidence
  • Network access in code of documentationREADME.md:143Low confidence
  • Access to secrets in code of documentationREADME.md:143Low confidence
  • Network access in code of documentationREADME.md:144Low confidence
  • Network access in prose of documentationREADME.md:161Low confidence
  • Network access in prose of documentationREADME.md:163Low confidence
  • Network access in prose of documentationREADME.md:165Low confidence
  • Network access in prose of documentationREADME.md:166Low confidence

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.