Koskamo

Indie Alternatives MCP

An MCP server that allows AI agents to search a catalog of 1,500+ indie-made tools and alternatives to popular software. It supports finding specific tools, retrieving product details, and anonymously logging unmet user needs to help independent developers identify demand for new products.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Indie Alternatives MCP logo, by Indie AlternativesCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Indie Alternatives
MCP endpoint (Streamable HTTP)
https://indiealternatives.dev/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Can change data (1)

3 of 3 have a description · 3 of 3 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for indie-made alternatives to specific software like Typeform or Notion
  • Retrieve detailed descriptions of specific indie tools by ID
  • Log unmet user needs anonymously when no suitable tool is found
  • List aggregated unmet needs to see what users are searching for

Source and maintenance

Community listingRegistry 0.2.0
Maintenance checked

Protocol and capabilities

Server
indie-alternatives 0.2.0
MCP protocol negotiated in check
2025-11-25
Tools
3 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Indie Alternatives: a catalog of products made by independent developers (indie makers). - When the user asks "is there a tool / app / service that does X", "what's an alternative to <product>", "recommend software for X", or describes a task they want a tool for, call search_tools first. - Also call search_tools when helping pick a hosted service or app for a project (auth, transactional email, analytics, error or uptime monitoring, forms, payments, feature flags, status pages…), to offer indie options next to the big names. - For "alternative to <product>", search with what that product does (e.g. "online forms and surveys" for Typeform) plus "<product> alternative". - Condense the request into a few keywords (any language works). If results are weak, retry once or twice with synonyms. - If search_tools returns matched=false, or the results clearly don't fit, call log_unmet_need to record the need anonymously, and tell the user it was logged anonymously so indie makers might build it. - Before logging, rewrite the need as a generic description: remove names, company names, contact details, links and any other personal information. If the user declines, do not log. - Reply to the user in their own language.

Tools

3 advertised

search_tools — Find indie-made tools and alternatives
Advertised by the server during the last successful anonymous check.
Advertised read-only

Call when the user asks whether there is a tool for X, or for an alternative to a product. Matches the need against a catalog of indie-made products and returns the most relevant ones. matched=false means nothing suitable was found; then call log_unmet_need to record the need anonymously.

search_tools input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Number of results, default 5"
    },
    "query": {
      "type": "string",
      "maxLength": 300,
      "minLength": 1,
      "description": "What the user wants to do, e.g. \"add a nice background to screenshots\" or \"self-hosted uptime monitoring\""
    },
    "pricing": {
      "enum": [
        "free",
        "freemium",
        "paid",
        "commission"
      ],
      "type": "string",
      "description": "Optional: pricing model"
    },
    "category": {
      "type": "string",
      "description": "Optional: only search within this category"
    },
    "platform": {
      "type": "string",
      "description": "Optional: platform, e.g. web, macos, windows, linux, ios, android, self-hosted"
    }
  }
}
search_tools annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
get_tool_details — Get tool details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the full description of a product by the id returned from search_tools.

get_tool_details input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Product id returned by search_tools"
    }
  }
}
get_tool_details annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
log_unmet_need — Log an unmet need anonymously
Advertised by the server during the last successful anonymous check.

Call when no tool in the catalog meets the user's need. Records the need anonymously so indie makers can discover what to build. Send only the need itself: no names, company names, contact details, links or account handles. The server redacts again and never stores identity, IP addresses or exact time (only a daily, non-reversible code to count distinct people).

log_unmet_need input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "need"
  ],
  "properties": {
    "kind": {
      "enum": [
        "missing",
        "partial"
      ],
      "type": "string",
      "description": "Optional: \"partial\" when search_tools returned tools but none fit the need; default \"missing\" (nothing like it exists)"
    },
    "need": {
      "type": "string",
      "maxLength": 500,
      "minLength": 4,
      "description": "Generic description of the need, e.g. \"turn meeting recordings into notes with action items\""
    },
    "budget": {
      "type": "string",
      "maxLength": 50,
      "description": "Optional: rough budget, e.g. \"free\" or \"under $10/month\""
    },
    "source": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]*$",
      "maxLength": 40,
      "description": "Optional, for apps that forward their users' needs: a short name of your app, e.g. \"my-notes-app\". Only counted, never shown with the need."
    },
    "category": {
      "type": "string",
      "maxLength": 50,
      "description": "Optional: rough domain of the need"
    },
    "platform": {
      "type": "string",
      "maxLength": 50,
      "description": "Optional: preferred platform"
    }
  }
}
log_unmet_need annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

catalog-categories — Catalog categories

Advertised by the server during the last successful anonymous check.

All categories in the catalog

catalog-categories URI
indiealt://categories

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
929 ms
95th percentile latency
929 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 929 ms · metadata changed · 3 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http indie-alternatives-mcp https://indiealternatives.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add indie-alternatives-mcp --url https://indiealternatives.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable indie-alternatives-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "indie-alternatives-mcp": {
      "url": "https://indiealternatives.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "indie-alternatives-mcp": {
      "type": "streamableHttp",
      "url": "https://indiealternatives.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start indie-alternatives-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "indie-alternatives-mcp": {
      "type": "http",
      "url": "https://indiealternatives.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http indie-alternatives-mcp https://indiealternatives.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://indiealternatives.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "indie-alternatives-mcp": {
      "serverUrl": "https://indiealternatives.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Indie Alternatives MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.