Koskamo

AppFinder MCP

An official MCP server by AppFinder that allows AI assistants to search for software, compare applications, retrieve detailed app profiles, and draft listing submissions using organic, community-driven rankings without requiring authentication.

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.

AppFinder MCP logo, by AppFinderVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by AppFinder
MCP endpoint (Streamable HTTP)
https://appfinder.tech/api/mcp
Vendor documentation

What you can do with it

  • Find software recommendations based on specific requirements
  • Compare two applications side-by-side
  • Retrieve detailed app profiles and pricing
  • Draft a free listing for a new software application

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
appfinder 1.0.0
MCP protocol
2025-06-18
Tools
9 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

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

AppFinder is a software directory with an advisor that ranks apps against a buyer's requirements. Use recommend_apps when someone describes what they need (the job, team size, budget, must-haves, tools it must work with); pass their whole request in their words. Use get_app, compare_apps and find_alternatives for specific apps, and category_demand for what buyers in a category ask for. Results are organic: positions can't be bought and no paid placement is included. Each fact names its source; link people to the AppFinder URLs in the results. For makers who want to list their own app: call check_listing with its website, then prepare_listing with what they told you about it. prepare_listing returns a link for the person: they sign in, review every field and submit; nothing is published until AppFinder's team approves it, and listing is free.

Tools

9 advertised

recommend_apps — Recommend software
Advertised by the server during the last successful anonymous check.
Advertised read-only

Ranks the apps in the AppFinder directory against a plain-language request and explains each pick with cited facts (what fits, what's missing, which apps a must-have rules out), plus one follow-up question that would narrow the list.

recommend_apps input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "request"
  ],
  "properties": {
    "request": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 3,
      "description": "What the buyer needs, e.g. “project management for a 12-person dev team, sprints, GitHub, SSO required, under $15 per user”."
    }
  }
}
recommend_apps annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_apps — Search apps
Advertised by the server during the last successful anonymous check.
Advertised read-only

Full-text search of the directory by name, keyword or job (most relevant first).

search_apps input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "How many results (default 10)."
    },
    "query": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "Words to search for, e.g. “kanban” or “invoicing”."
    },
    "category": {
      "type": "string",
      "maxLength": 80,
      "description": "Optional category name or slug from list_categories."
    }
  }
}
search_apps annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_app — Get an app
Advertised by the server during the last successful anonymous check.
Advertised read-only

One app's listing: description, categories, pricing, platforms, features, integrations, rating and its facts with sources.

get_app input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "app"
  ],
  "properties": {
    "app": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "App name or AppFinder slug, e.g. “Linear”."
    }
  }
}
get_app annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_apps — Compare two apps
Advertised by the server during the last successful anonymous check.
Advertised read-only

Side by side: pricing, and the features, integrations and platforms both apps have or only one has.

compare_apps input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "first",
    "second"
  ],
  "properties": {
    "first": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "First app name or slug."
    },
    "second": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "Second app name or slug."
    }
  }
}
compare_apps annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_alternatives — Find alternatives
Advertised by the server during the last successful anonymous check.
Advertised read-only

Apps that do what an app does (same category, most shared features first), and what buyers who wanted to replace it chose.

find_alternatives input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "app"
  ],
  "properties": {
    "app": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "The app to replace, e.g. “Jira”."
    }
  }
}
find_alternatives annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_categories — List categories
Advertised by the server during the last successful anonymous check.
Advertised read-only

The directory's categories with how many apps each lists.

list_categories input schema
{
  "type": "object",
  "properties": {}
}
list_categories annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
category_demand — What buyers ask for
Advertised by the server during the last successful anonymous check.
Advertised read-only

The public demand report of a category: the share of buyers who asked the advisor for each feature, integration, security need and budget in the last 90 days (anonymous totals), and how many listed apps answer each.

category_demand input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "category"
  ],
  "properties": {
    "category": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "Category name or slug, e.g. “Project Management”."
    }
  }
}
category_demand annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_listing — Is an app listed?
Advertised by the server during the last successful anonymous check.
Advertised read-only

Whether a website already has a published AppFinder listing, and its page. Call this before prepare_listing.

check_listing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "website"
  ],
  "properties": {
    "website": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "The app's website or domain, e.g. “acme.com”."
    }
  }
}
check_listing annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
prepare_listing — Prepare a listing for a maker
Advertised by the server during the last successful anonymous check.
Open-world

For a maker who wants to list their own app: fills in AppFinder's submission form from what they told you plus the app's website, and returns a private link. The person opens it, signs in, reviews every field and submits; nothing is published until AppFinder's team approves it. Listing is free. Pass only what the maker said; leave out what you don't know (the website fills the gaps).

prepare_listing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "website"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 80,
      "description": "The app's name."
    },
    "tagline": {
      "type": "string",
      "maxLength": 80,
      "description": "One line that says what it does, without claims like “#1” or “best”."
    },
    "website": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "The app's website, e.g. “acme.com”."
    },
    "category": {
      "type": "string",
      "maxLength": 80,
      "description": "Category name or slug from list_categories."
    },
    "features": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60,
        "minLength": 1
      },
      "maxItems": 30,
      "description": "Key features, e.g. [“Kanban boards”, “Time tracking”]."
    },
    "logo_url": {
      "type": "string",
      "maxLength": 2048,
      "description": "A square logo image over https."
    },
    "platforms": {
      "type": "array",
      "items": {
        "enum": [
          "web",
          "macos",
          "windows",
          "linux",
          "ios",
          "android"
        ],
        "type": "string"
      },
      "maxItems": 6,
      "description": "Where it runs."
    },
    "description": {
      "type": "string",
      "maxLength": 600,
      "description": "Who it's for and what they can do with it (at least 20 characters)."
    },
    "integrations": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60,
        "minLength": 1
      },
      "maxItems": 30,
      "description": "Tools it integrates with, e.g. [“Slack”, “GitHub”]."
    },
    "pricing_model": {
      "enum": [
        "free",
        "freemium",
        "paid",
        "open_source",
        "contact_sales"
      ],
      "type": "string",
      "description": "free, freemium (free plan + paid plans), paid, open_source or contact_sales."
    },
    "pricing_summary": {
      "type": "string",
      "maxLength": 160,
      "description": "One line, like “Free plan; paid plans from $8 per user per month.”"
    },
    "starting_price_usd": {
      "type": "number",
      "maximum": 100000,
      "minimum": 0,
      "description": "Lowest paid plan per month, in US dollars."
    }
  }
}
prepare_listing annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
1000 ms
95th percentile latency
1000 ms

Maintenance history

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

  • · probe · passed · 1000 ms · metadata changed · 9 tool(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 appfinder-mcp https://appfinder.tech/api/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 appfinder-mcp --url https://appfinder.tech/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable appfinder-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "appfinder-mcp": {
      "url": "https://appfinder.tech/api/mcp"
    }
  }
}

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start appfinder-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "appfinder-mcp": {
      "type": "http",
      "url": "https://appfinder.tech/api/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 appfinder-mcp https://appfinder.tech/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "appfinder-mcp": {
      "url": "https://appfinder.tech/api/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": {
    "appfinder-mcp": {
      "serverUrl": "https://appfinder.tech/api/mcp"
    }
  }
}

Let your agent find its tools

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

Do you run AppFinder MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing