protogrid

Search / com.nicheangle/niche

Niche: Your niche, followed for you

R0· no sign-in

Read niche briefings, research news, and explore sourced story angles with your assistant.

v2.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality69needs work
Trust96of 100
Uptime, 30 days100%
Latency p50207 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "niche": {
      "type": "http",
      "url": "https://api.nicheangle.com/mcp"
    }
  }
}
claude mcp add --transport http niche https://api.nicheangle.com/mcp
[mcp_servers.niche]
url = "https://api.nicheangle.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "niche": {
      "type": "remote",
      "url": "https://api.nicheangle.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "niche": {
      "type": "http",
      "url": "https://api.nicheangle.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=niche&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLm5pY2hlYW5nbGUuY29tL21jcCJ9"
}
{
  "servers": {
    "niche": {
      "type": "http",
      "url": "https://api.nicheangle.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "niche": {
      "httpUrl": "https://api.nicheangle.com/mcp"
    }
  }
}
extensions:
  "niche":
    enabled: true
    name: "niche"
    type: streamable_http
    uri: "https://api.nicheangle.com/mcp"
    timeout: 300

Quality 69 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations8 of 8 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: niche_whoami (idempotentHint); niche_intelligence_query (idempotentHint); niche_session_state (idempotentHint); …
  • pass
    tools.token_costabout 2,164 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes35 tool changes in 30 days
  • fail
    stability.rug_pull9 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

8 tools, about 2,164 tokens to load them all · tool set 3c0760050f98 · tools last changed 2026-10-17 · checked 2026-10-20 04:09 UTC

Tool changes

  • niche_feed_readchangedtitle, description, annotationsmeaning changed
    before

    Read a niche's daily edition: the stories independent sources back up, each with its independent-source count (after syndicated copies are merged), the outlets and URLs, a one-line why-it-matters, new-vs-continuing status, plus what moved, where the sources disagree and what to watch. Editions are built once a day per niche and shared, so this read is instant and free. Pass a niche slug from the public directory (for example financial-advisors, defense-tech) and optionally a date (YYYY-MM-DD) for a past edition. A quiet day returns status=quiet with no stories. Returns 'no_edition' when the niche exists but hasn't been built yet, and 'unknown_niche' otherwise.

    after · 20% of words in common

    Read the latest or a dated briefing for a niche: stories, reporting dates, source links, why each story matters, and new or continuing status. Use a slug from https://nicheangle.com/n or a custom niche's URL, such as founders or ai-leaders. Assistant access requires Pro. This reads an existing briefing without starting a scan. A quiet briefing has status=quiet; no_edition means no briefing is available; unknown_niche means the slug was not found.

  • niche_whoamichangeddescription, input schema
    before

    Orient in one read-only call: your plan (Free or Pro), the tools this server serves, and the endpoint. Call it first if you are unsure what is available.

    after · 90% of words in common

    Orient in one read-only call: your plan (Free or Pro), the tools this server serves, and the endpoint. Assistant access requires Pro. Call it first if you are unsure what is available.

  • niche_session_cancelchangedinput schema
  • niche_list_sessionschangedinput schema
  • niche_angle_proposechangedinput schema
  • niche_session_statechangeddescription, input schema
    before

    Read the current state of a scan: status, the ranked stories with their sources and independent-source counts, and any angles already proposed. Poll this after niche_signal_scan or niche_intelligence_query until the slate is ready.

    after · 91% of words in common

    Read the current state of a scan: status, the ranked stories with their sources and source information, and any angles already proposed. Poll this after niche_signal_scan or niche_intelligence_query until the slate is ready.

  • niche_intelligence_querychangeddescription, input schemameaning changed
    before

    Ask an analyst-shaped question over a fresh scan of a niche (Pro): 'the biggest developments this week', 'what is emerging', 'where money is moving'. Returns the sourced slate plus a short grounded synthesis as one answer. Every claim carries its sources.

    after · 48% of words in common

    Ask an analyst-shaped question over a fresh scan of a niche (Pro): 'the biggest developments this week', 'what is emerging', 'where money is moving'. Returns the sourced slate plus a short synthesis when requested. Returns a session_id; poll niche_session_state until cp1_awaiting_story. For synthesis, continue polling with wait_until=synthesis and wait=30 until it arrives or a shortfall is reported.

  • niche_signal_scanchangeddescription, input schema
    before

    Scan a niche you describe, right now (Pro). Returns a ranked, sourced slate of the stories people in that field are talking about, each with its independent-source count after syndicated copies are merged, the outlets, and why it matters. For a ready-made briefing use niche_feed_read instead; it is free and instant. Poll niche_session_state with the returned session_id until status is cp1_awaiting_story; the slate is in `stories`.

    after · 77% of words in common

    Scan a niche you describe, right now (Pro). Returns a ranked, sourced slate of the stories people in that field are talking about, with source links, the outlets, and why it matters. For a ready-made briefing use niche_feed_read instead. Assistant access requires Pro. Poll niche_session_state with the returned session_id until status is cp1_awaiting_story; the slate is in `stories`.

  • niche_feed_readchangeddescription
    before

    Read a niche's daily edition: the stories independent sources back up, each with its independent-source count (after syndicated copies are merged), the outlets and URLs, a one-line why-it-matters, new-vs-continuing status, plus what moved, where the discourse splits and what to watch. Editions are built once a day per niche and shared, so this read is instant and free. Pass a niche slug from the public directory (for example financial-advisors, defense-tech) and optionally a date (YYYY-MM-DD) for a past edition. A quiet day returns status=quiet with no stories. Returns 'no_edition' when the niche exists but hasn't been built yet, and 'unknown_niche' otherwise.

    after · 96% of words in common

    Read a niche's daily edition: the stories independent sources back up, each with its independent-source count (after syndicated copies are merged), the outlets and URLs, a one-line why-it-matters, new-vs-continuing status, plus what moved, where the sources disagree and what to watch. Editions are built once a day per niche and shared, so this read is instant and free. Pass a niche slug from the public directory (for example financial-advisors, defense-tech) and optionally a date (YYYY-MM-DD) for a past edition. A quiet day returns status=quiet with no stories. Returns 'no_edition' when the niche exists but hasn't been built yet, and 'unknown_niche' otherwise.

  • niche_attach_imageremoved

    Upload or attach a user-supplied or externally-designed image (bring-your-own asset) to a post: the creator's own visual (a product shot, their actual work, a card designed elsewhere) instead of an AI-generated image (niche_render_image_card photo, paid) or a flat brand card. Free, with no image-generation spend. For a visual-product maker the real piece is the sale. Input modes, in order of preference: (1) `upload_ref`, the FAST path for an agent that built the asset itself and can run a shell: POST the raw file to `/asset/upload` (multipart/form-data, your bearer token) to get back an `upload_ref`, then pass it here. The bytes travel over HTTP and never round-trip through the model as base64, so it's effectively instant for a real graphic. (2) `image_url`, a fetchable https URL (the server fetches + stores it; for an asset that already lives on the web). (3) `image: {mime_type, data_base64}`, inline base64, fine for small images only. (4) `image_chunk`, the no-shell FALLBACK: upload bounded chunks of base64. It still re-types the bytes through the model (slow), so use it only when the agent has no shell to curl with. Split the file's bytes into ~32-48KB pieces, base64 EACH independently, send in order, each with a `sha256` of that piece's raw bytes so the server catches a mis-transcribed chunk and has you resend just that one (this is what makes the slow path reliable). Omit upload_id on the first chunk; the response returns one to pass on the rest. Set `final:true` on the last chunk (optionally with `total_sha256`); that call assembles, validates, and attaches. The cell's output must already exist (use niche_add_output first if needed). Sets it as the post's image; publishes with the caption. A dimension_note warns if the image's aspect won't fit the cell. Undo-able (the prior image is kept in history).

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance85
liveness100
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-100% +updated-3d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.nicheangle.com/mcp streamable-httpnoneyes100%207 ms2025-03-262026-10-20

Tools (8)

niche_angle_proposeAngles on one story (Pro): up to a few distinct stances a reader could take, each with a hook, the take, and the sources that support it. Pass the session_id from a scan and a story_id from its slate. Nothing is written for you; the angles are starting points.
niche_feed_readread-onlyRead the latest or a dated briefing for a niche: stories, reporting dates, source links, why each story matters, and new or continuing status. Use a slug from https://nicheangle.com/n or a custom niche's URL, such as founders or ai-leaders. Assistant access requires Pro. This reads an existing briefing without starting a scan. A quiet briefing has status=quiet; no_edition means no briefing is available; unknown_niche means the slug was not found.
niche_intelligence_queryAsk an analyst-shaped question over a fresh scan of a niche (Pro): 'the biggest developments this week', 'what is emerging', 'where money is moving'. Returns the sourced slate plus a short synthesis when requested. Returns a session_id; poll niche_session_state until cp1_awaiting_story. For synthesis, continue polling with wait_until=synthesis and wait=30 until it arrives or a shortfall is reported.
niche_list_sessionsread-onlyList your recent scans: id, the niche you described, status and timestamps. Use it to find a session_id you no longer have.
niche_session_canceldestructiveCancel a scan that is still running.
niche_session_stateread-onlyRead the current state of a scan: status, the ranked stories with their sources and source information, and any angles already proposed. Poll this after niche_signal_scan or niche_intelligence_query until the slate is ready.
niche_signal_scanScan a niche you describe, right now (Pro). Returns a ranked, sourced slate of the stories people in that field are talking about, with source links, the outlets, and why it matters. For a ready-made briefing use niche_feed_read instead. Assistant access requires Pro. Poll niche_session_state with the returned session_id until status is cp1_awaiting_story; the slate is in `stories`.
niche_whoamiread-onlyOrient in one read-only call: your plan (Free or Pro), the tools this server serves, and the endpoint. Assistant access requires Pro. Call it first if you are unsure what is available.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.nicheangle/niche",
  "icons": [
    {
      "src": "https://raw.githubusercontent.com/sailquery/niche-mcp/master/icon.png",
      "sizes": [
        "1024x1024"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Niche: Your niche, followed for you",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.nicheangle.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "2.0.0",
  "repository": {
    "url": "https://github.com/sailquery/niche-mcp",
    "source": "github"
  },
  "websiteUrl": "https://nicheangle.com",
  "description": "Read niche briefings, research news, and explore sourced story angles with your assistant."
}