Skip to content
Squatch MCP

io.github.cyanheads/bluesky-mcp-server

io.github.cyanheads/bluesky-mcp-server

by io.github.cyanheads· v0.8.0Source: Official MCP Registry

All versions

VersionRegistry status
0.8.0latestActive
0.7.0Active
0.6.0Active
0.5.2Active
0.5.1Active
0.5.0Active
0.4.0Active
0.3.2Active
0.3.1Active
0.3.0Active
0.2.2Active
0.2.1Active
0.2.0Active
0.1.7Active
0.1.6Active
0.1.5Active
0.1.4Active
0.1.3Active
0.1.2Active
0.1.1Active

Version details

Version
0.8.0
Source
Source: Official MCP Registry
Published
Registry last updated
First observed by Squatch
Content fingerprint
c240035d7ea3e83e1ff3353442bd12d57ebd0e95ebada0c1916f0453bd8f526f

Transports in this version

  • remotestreamable-httphttps://bluesky.caseyjhand.com/mcpNo authentication
  • packagestdionpm @cyanheads/bluesky-mcp-serverUnknown
  • packagestreamable-httpnpm @cyanheads/bluesky-mcp-serverUnknown
Registry metadata (server.json, sanitized)
{
  "_meta": {
    "io.modelcontextprotocol.registry/official": {
      "status": "active",
      "isLatest": true,
      "updatedAt": "2026-11-11T14:21:28.733339Z",
      "publishedAt": "2026-11-11T14:21:28.733339Z",
      "statusChangedAt": "2026-11-11T14:21:28.733339Z"
    }
  },
  "server": {
    "name": "io.github.cyanheads/bluesky-mcp-server",
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
    "remotes": [
      {
        "url": "https://bluesky.caseyjhand.com/mcp",
        "type": "streamable-http"
      }
    ],
    "version": "0.8.0",
    "packages": [
      {
        "version": "0.8.0",
        "transport": {
          "type": "stdio"
        },
        "identifier": "@cyanheads/bluesky-mcp-server",
        "runtimeHint": "npx",
        "registryType": "npm",
        "registryBaseUrl": "https://registry.npmjs.org",
        "environmentVariables": [
          {
            "name": "BLUESKY_CLAMP_READ_LIMITS",
            "format": "boolean",
            "default": "true",
            "description": "Clamp oversized read limits with a notice; false restores rejection."
          },
          {
            "name": "BLUESKY_IDENTIFIER",
            "format": "string",
            "description": "Handle, DID, or email of the Bluesky account post search runs as. Optional: without it and BLUESKY_APP_PASSWORD, bsky_search_posts is not offered, since Bluesky refuses search without a signed-in account. Use a dedicated account — search leaves out posts from accounts in a block relationship with it."
          },
          {
            "name": "BLUESKY_APP_PASSWORD",
            "format": "string",
            "isSecret": true,
            "description": "App password for BLUESKY_IDENTIFIER (a standard, non-privileged one — Settings → Privacy and security → App passwords). Optional; required together with BLUESKY_IDENTIFIER to enable bsky_search_posts."
          },
          {
            "name": "MCP_LOG_LEVEL",
            "format": "string",
            "default": "info",
            "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
          }
        ]
      },
      {
        "version": "0.8.0",
        "transport": {
          "url": "http://localhost:3010/mcp",
          "type": "streamable-http"
        },
        "identifier": "@cyanheads/bluesky-mcp-server",
        "runtimeHint": "npx",
        "registryType": "npm",
        "registryBaseUrl": "https://registry.npmjs.org",
        "environmentVariables": [
          {
            "name": "MCP_TRANSPORT_TYPE",
            "value": "http",
            "format": "string",
            "description": "Selects the HTTP transport."
          },
          {
            "name": "BLUESKY_CLAMP_READ_LIMITS",
            "format": "boolean",
            "default": "true",
            "description": "Clamp oversized read limits with a notice; false restores rejection."
          },
          {
            "name": "BLUESKY_IDENTIFIER",
            "format": "string",
            "description": "Handle, DID, or email of the Bluesky account post search runs as. Optional: without it and BLUESKY_APP_PASSWORD, bsky_search_posts is not offered, since Bluesky refuses search without a signed-in account. Use a dedicated account — search leaves out posts from accounts in a block relationship with it."
          },
          {
            "name": "BLUESKY_APP_PASSWORD",
            "format": "string",
            "isSecret": true,
            "description": "App password for BLUESKY_IDENTIFIER (a standard, non-privileged one — Settings → Privacy and security → App passwords). Optional; required together with BLUESKY_IDENTIFIER to enable bsky_search_posts."
          },
          {
            "name": "MCP_HTTP_HOST",
            "format": "string",
            "default": "127.0.0.1",
            "description": "The hostname for the HTTP server."
          },
          {
            "name": "MCP_HTTP_PORT",
            "format": "string",
            "default": "3010",
            "description": "The port to run the HTTP server on."
          },
          {
            "name": "MCP_HTTP_ENDPOINT_PATH",
            "format": "string",
            "default": "/mcp",
            "description": "The endpoint path for the MCP server."
          },
          {
            "name": "MCP_AUTH_MODE",
            "format": "string",
            "default": "none",
            "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
          },
          {
            "name": "MCP_LOG_LEVEL",
            "format": "string",
            "default": "info",
            "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
          }
        ]
      }
    ],
    "repository": {
      "url": "https://github.com/cyanheads/bluesky-mcp-server",
      "source": "github"
    },
    "description": "Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP."
  }
}