{"name":"DejaBars","description":"Chart-pattern discovery across crypto markets on 7 timeframes, using DTW/DDTW and geometric matching.","version":"1.0","homepage":"https://dejabars.com","icon":"https://dejabars.com/logo-256.png","license":"Proprietary","transport":{"type":"streamable-http","endpoint":"https://dejabars.com/api/v1/mcp","protocol":"mcp","content_type":"application/json","session_header":"Mcp-Session-Id","protocol_versions":["2026-07-28","2025-06-18","2025-03-26","2024-11-05"]},"authorization":{"type":"oauth2","flow":"authorization code with PKCE (S256) for hosted chats; RFC 8628 device code for local CLIs","authorization_servers":["https://dejabars.com/api"],"authorization_endpoint":"https://dejabars.com/api/oauth/authorize","token_endpoint":"https://dejabars.com/api/oauth/token","registration_endpoint":"https://dejabars.com/api/oauth/register","authorization_server_metadata":"https://dejabars.com/api/.well-known/oauth-authorization-server","protected_resource_metadata":"https://dejabars.com/api/.well-known/oauth-protected-resource","code_challenge_methods":["S256"],"grant_types":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:device_code"],"device_authorization_endpoint":"https://dejabars.com/api/v1/oauth/device_authorization","verification_uri":"https://dejabars.com/agents/approve","poll_interval_seconds":5,"steps":["POST /oauth/register with client_name and redirect_uris; store client_id.","Open /oauth/authorize?response_type=code&client_id=...&redirect_uri=...&scope=...&state=...&code_challenge=...&code_challenge_method=S256.","The human signs in and approves the requested scopes on /agents/approve.","POST /oauth/token with grant_type=authorization_code, the code, the redirect_uri and the code_verifier.","Call POST /v1/mcp with Authorization: Bearer <access_token> and keep the Mcp-Session-Id returned by initialize.","Refresh with grant_type=refresh_token before the access token expires."],"device_flow_steps":["POST /oauth/device_authorization with a client_name and the scopes you need.","Show the returned user_code and verification_uri to the human.","POST /oauth/token with grant_type=urn:ietf:params:oauth:grant-type:device_code and the device_code; retry while it returns authorization_pending."],"notes":"Hosts must register a public client and use PKCE S256; the client secret is not supported. Never ask the user to paste a token into a chat, and never echo it."},"scopes":{"search:run":"Submit and read pattern searches.","market:read":"Read coins and klines.","catalog:read":"List the user's saved patterns.","catalog:write":"Save patterns on the user's behalf (opt-in at approval).","default":["search:run","market:read","catalog:read"]},"tools":[{"name":"agent_capabilities","title":"Agent capabilities","description":"Return the tools, scopes, cost table and data coverage available to this session.","scope":null,"input_schema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"search_submit","title":"Submit a pattern search","description":"Submit a chart-pattern search. Returns a task id immediately; poll search_status/search_result. Idempotent per request within a session only by the caller's own retry discipline.","scope":"search:run","input_schema":{"type":"object","required":["pattern"],"properties":{"pattern":{"type":"array","items":{"type":"number"},"minItems":3,"description":"Normalised Y values of the sketch (0..1)."},"timeframe":{"type":"string","enum":["1m","5m","15m","1h","4h","1d","1w"]},"search_mode":{"type":"string","enum":["geo","dtw","wdtw","erp","lcss","sax","matrix_profile","cross_correlation"]},"period_days":{"type":"integer","enum":[1,7,30,365]},"max_distance":{"type":"number","minimum":0,"maximum":1},"idempotency_key":{"type":"string","description":"Retry-safe key; a repeated call with the same key replays the first result instead of charging again."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"search_status","title":"Search status","description":"Report whether a submitted search is running or complete. A completed search carries its match count and a report_url link to the full human-readable report.","scope":"search:run","input_schema":{"type":"object","required":["task_id"],"properties":{"task_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"search_result","title":"Search result","description":"Return one page of a completed search's per-coin matches plus a report_url link to the full human-readable report. Heavy per-candle series are omitted unless include_series is true.","scope":"search:run","input_schema":{"type":"object","required":["task_id"],"properties":{"task_id":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","description":"Opaque pagination cursor from a previous call."},"include_series":{"type":"boolean","description":"Include segment_prices/segment_times (large)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"quota_status","title":"Quota status","description":"Return the account's remaining tokens so the agent can plan before spending.","scope":"search:run","input_schema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_coins","title":"List coins","description":"List coins with trading statistics (signal strength, spread, win probability).","scope":"market:read","input_schema":{"type":"object","properties":{"min_mu":{"type":"number"},"max_spread":{"type":"number"},"min_pwin":{"type":"number"},"sort_by":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":500}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"market_klines","title":"Market klines","description":"Fetch OHLC klines for one symbol and interval.","scope":"market:read","input_schema":{"type":"object","required":["symbol"],"properties":{"symbol":{"type":"string"},"interval":{"type":"string","enum":["1m","5m","15m","1h","4h","1d","1w"]},"limit":{"type":"integer","minimum":1,"maximum":1000}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"catalog_list","title":"List saved patterns","description":"List the authenticated user's saved patterns (public fields only).","scope":"catalog:read","input_schema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"catalog_save","title":"Save a pattern","description":"Save a pattern sketch to the user's library. Requires the catalog:write scope, which the user must grant at approval time.","scope":"catalog:write","input_schema":{"type":"object","required":["points"],"properties":{"points":{"type":"array","items":{"type":"number"},"minItems":3,"description":"Normalised Y values of the sketch (0..1)."},"xs":{"type":"array","items":{"type":"number"},"description":"Optional X positions (0..1)."},"timeframe":{"type":"string","enum":["1m","5m","15m","1h","4h","1d","1w"]},"threshold":{"type":"number","minimum":0,"maximum":1},"name":{"type":"string","maxLength":200}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"data":{"timeframes":["1m","5m","15m","1h","4h","1d","1w"],"search_modes":["geo","dtw","wdtw","erp","lcss","sax","matrix_profile","cross_correlation"],"search_is_async":true,"note":"Use search_submit then poll search_status/search_result; never block."},"cost":{"unit":"tokens","formula":"timeframe_factor x algorithm_factor x period_factor (0 on the free tier)","free_tier":{"timeframes":["1h","4h","1d","1w"],"search_modes":["geo"],"max_period_days":30},"examples":{"1h/geo/30d":0,"1h/dtw/30d":4,"1m/geo/30d":8,"1m/dtw/30d":16}},"rate_limits":{"search_per_minute":10,"note":"Searches are queued per user; the client should poll instead of retrying."},"data_freshness":{"market_data":"continuously updated from the exchange feeds","coverage":"see /api/llm/facts before promising a symbol count"},"examples":[{"tool":"search_submit","arguments":{"pattern":[0.5,0.8,0.2,0.6,0.4],"timeframe":"1h","search_mode":"geo","period_days":30}},{"tool":"search_status","arguments":{"task_id":"<task_id from search_submit>"}}],"links":{"homepage":"https://dejabars.com","pricing":"https://dejabars.com/pricing","docs":"https://dejabars.com/docs","blog":"https://dejabars.com/blog","llms":"https://dejabars.com/llms.txt","llms_full":"https://dejabars.com/llms-full.txt","agents":"https://dejabars.com/agents.txt","a2a":"https://dejabars.com/.well-known/agent.json","openapi":"https://dejabars.com/.well-known/openapi.json","facts":"https://dejabars.com/api/llm/facts","docs_markdown":"https://dejabars.com/api/legal/{slug}?format=md"}}