Dekadans MCP
An official MCP server provided by Dekadans that allows AI assistants to perform App Store Optimization tasks. It enables agents to track keyword rankings, check popularity and difficulty scores, find keyword ideas from competitors, and manage tracked apps across 175 App Store storefronts using a Streamable HTTP endpoint authenticated via bearer API key.
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.
https://dekadans.net/mcpWhat you can do with it
- Track daily App Store keyword rankings and popularity scores
- Find keyword ideas from competitor app metadata
- Check keyword difficulty and popularity without tracking
- Add apps and keywords to the tracking dashboard programmatically
Source and maintenance
Protocol and capabilities
- Server
- aso-saas 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 13 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
13 advertised
list_apps — List apps
Tracked apps of the user.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"readOnlyHint": true
}add_app — Add app
Track an app by App Store ID; its name is looked up automatically. Omit appStoreId (and pass name) for a temporary app. Free plan: 1 app.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Defaults to the App Store name. Required for temporary apps."
},
"platform": {
"enum": [
"iphone",
"ipad",
"mac",
"appletv",
"realityDevice"
],
"type": "string",
"default": "iphone"
},
"homeStore": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$",
"description": "Store where the app is available; used to look it up"
},
"appStoreId": {
"type": "string",
"pattern": "^[1-9]\\d{0,19}$",
"description": "Omit for a temporary (unpublished) app"
}
}
}add_keywords — Add keywords
Track up to 100 keywords for an app in a store and measure rank, popularity and difficulty. Plan limit on total tracked keywords (free: 10); a batch over the limit is rejected entirely.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appId",
"store",
"keywords"
],
"properties": {
"appId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Local app id from list_apps, not the App Store ID",
"exclusiveMinimum": 0
},
"store": {
"type": "string",
"pattern": "^[a-z]{2}$"
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"minItems": 1
}
}
}refresh_app_keywords — Refresh app keywords
Measure all tracked keywords of an app now and append to history.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appId"
],
"properties": {
"appId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Local app id from list_apps, not the App Store ID",
"exclusiveMinimum": 0
}
}
}get_app_keywords — Get app keywords
Tracked keywords of an app with latest metrics.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appId"
],
"properties": {
"appId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Local app id from list_apps, not the App Store ID",
"exclusiveMinimum": 0
}
}
}{
"readOnlyHint": true
}get_keyword_history — Get keyword history
Daily rank, popularity and difficulty history of one tracked keyword (keywordId from get_app_keywords), oldest first; days without a measurement are omitted. Free plan: last 7 days.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appId",
"keywordId"
],
"properties": {
"days": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"type": "integer",
"maximum": 3650,
"minimum": 1
}
],
"default": 30,
"description": "Days of history to return, or \"all\". Free plan: capped at 7."
},
"appId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Local app id from list_apps, not the App Store ID",
"exclusiveMinimum": 0
},
"keywordId": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}{
"readOnlyHint": true
}get_usage — Plan and usage
Current plan, tracked apps, keywords and research calls in the current quota period (free: month, pro: day). A null limit means unlimited.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"readOnlyHint": true
}search_app_store — App Store search
Live App Store search for a keyword. Returns ranked apps and difficulty; with appStoreId also that app's ranking (null = not in the returned results). Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"term"
],
"properties": {
"term": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"platform": {
"enum": [
"iphone",
"ipad",
"mac",
"appletv",
"realityDevice"
],
"type": "string",
"default": "iphone"
},
"appStoreId": {
"type": "string",
"pattern": "^[1-9]\\d{0,19}$"
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}get_keyword_popularity — Keyword popularity
Popularity scores for up to 100 keywords in a store, without tracking them. Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"terms"
],
"properties": {
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"minItems": 1
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}get_keyword_suggestions — Keyword suggestions
Keyword ideas for an App Store app with popularity and difficulty for the selected platform. Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appStoreId"
],
"properties": {
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"platform": {
"enum": [
"iphone",
"ipad",
"mac",
"appletv",
"realityDevice"
],
"type": "string",
"default": "iphone"
},
"appStoreId": {
"type": "string",
"pattern": "^[1-9]\\d{0,19}$"
},
"highPopularity": {
"type": "boolean",
"default": true
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}get_most_searched_keywords — Most searched keywords
One page of the most searched keywords in a store, optionally for an App Store category id (e.g. 6013). Check `month`: data can be from an earlier month. Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 10000,
"minimum": 1
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"category": {
"type": "string",
"pattern": "^\\d{1,10}$"
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}get_competitor_keywords — Competitor keyword ideas
Derives 1–3 word candidates from the top 10 competitors ranking for a keyword and returns those with popularity > 5, highest first. Pass your appStoreId to exclude your own app. Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"term"
],
"properties": {
"term": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"platform": {
"enum": [
"iphone",
"ipad",
"mac",
"appletv",
"realityDevice"
],
"type": "string",
"default": "iphone"
},
"appStoreId": {
"type": "string",
"pattern": "^[1-9]\\d{0,19}$"
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}get_app_details — App details
App Store details (developer, rating, price, description, screenshots) for up to 50 App Store IDs. IDs not available in the store are omitted. Counts toward the research quota.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appStoreIds"
],
"properties": {
"store": {
"type": "string",
"default": "us",
"pattern": "^[a-z]{2}$"
},
"appStoreIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[1-9]\\d{0,19}$"
},
"maxItems": 50,
"minItems": 1
}
}
}{
"readOnlyHint": true,
"openWorldHint": true
}Prompts
Not advertised
Resources
Not advertised
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
- 1568 ms
- 95th percentile latency
- 1568 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1568 ms · metadata changed · 13 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dekadans-mcp https://dekadans.net/mcpCodex
codex mcp add dekadans-mcp --url https://dekadans.net/mcpCursor
{
"mcpServers": {
"dekadans-mcp": {
"url": "https://dekadans.net/mcp"
}
}
}Cline
{
"mcpServers": {
"dekadans-mcp": {
"type": "streamableHttp",
"url": "https://dekadans.net/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dekadans-mcp": {
"type": "http",
"url": "https://dekadans.net/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dekadans-mcp https://dekadans.net/mcpClaude Desktop
{
"mcpServers": {
"dekadans-mcp": {
"url": "https://dekadans.net/mcp"
}
}
}Windsurf
{
"mcpServers": {
"dekadans-mcp": {
"serverUrl": "https://dekadans.net/mcp"
}
}
}Let your agent find its tools
Find servers like Dekadans MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Dekadans 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.