{"name":"ai.elfa/mcp","slug":"elfa-mcp","title":null,"description":"Crypto social intelligence from X and Telegram, plus the Elfa Auto condition engine","url":"https://mcp.market/server/elfa-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":40,"stars":7,"forks":1,"downloads_week":494,"last_push_at":"2026-11-02T04:33:52.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/elfa-ai/mcp","website":"https://docs.elfa.ai","version":"4.10.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@elfa-ai/mcp","version":"4.10.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Elfa API key from https://dev.elfa.ai","isRequired":true,"isSecret":true,"name":"ELFA_API_KEY"}]}],"tools":[{"name":"api_status","description":"Check the Elfa API key tier, credit usage and remaining requests, and confirm the API is reachable. Free. historyFrom is the earliest time, in unix seconds, the events, market and calls tools read on this plan.","write_action":false,"price_micros":0,"input_schema":null},{"name":"auto_build","description":"Turn a plain-language monitoring request into an EQL query. Costs 1 credit plus LLM usage. This only drafts the query: nothing runs until it is activated. Say what to watch, the threshold, and what should happen when it fires. It drafts tweet conditions only for accounts in Elfa's real-time set (included), not for other X accounts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"auto_draft","description":"Read side of Auto drafts. Free. method=list browses saved drafts, method=get returns one draft. A draft is an Auto query parked without activating it: it never evaluates and never fires.","write_action":false,"price_micros":0,"input_schema":null},{"name":"auto_draft_write","description":"Create, update, delete or activate an Auto draft. method=upsert parks a query as a draft without activating it; drafts never evaluate and never fire. method=delete removes a draft. method=convert activates a draft as a live query, which runs unattended and fires its action without asking again, and costs the same as creating a query. upsert and delete are free.","write_action":true,"price_micros":0,"input_schema":null},{"name":"auto_query","description":"Read side of Auto. Free. method=list browses queries, method=get polls one query and returns its latest evaluation, plus failure when it failed with a recorded reason, method=executions and method=execution show what fired, method=sessions and method=session return the LLM analysis attached to a query. There is no push channel here, poll with method=get and respect pollAfterSeconds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"auto_query_write","description":"Activate, cancel or delete an Auto query. Creating costs 5 credits plus LLM usage, cancel and delete are free. An activated query runs unattended and fires its action without asking again. Per-post X accounts in its tweet conditions and per-day accounts in its x_follow_made or x_follow_overlap conditions are billed on top while it runs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"auto_validate","description":"Check EQL syntax and get the estimated cost of activating a query. Free. tweetAccounts lists the X account behind each tweet condition: billing=per_post accounts cost creditsPerPost for every post from the account (not replies or reposts), matched or not, while the query runs, on top of estimatedCredits. followAccounts lists the X account behind each x_follow_made or x_follow_overlap condition: bi","write_action":false,"price_micros":0,"input_schema":null},{"name":"calls","description":"What accounts are doing: positions taken in posts on X and Telegram.. level=calls: each post that opened, added to, trimmed, reaffirmed, reversed, closed or stopped out of a position. level=episodes: each position from open to close, with entry and exit prices and the author's track record. level=positioning: open longs and shorts on one asset right now. level=episodes with status=open and from se","write_action":false,"price_micros":0,"input_schema":null},{"name":"entities","description":"Turn a ticker, $cashtag, name, @handle, contract address, CoinGecko id, FIGI or CIK into the entity id that events and calls take.. It matches exactly, it is not a search: a prefix or a misspelling returns nothing. A ticker is not unique, so take the first row and check its name, or narrow with entityType. Forms of an asset share one family id where known: WBTC and cbBTC are Bitcoin. Resolve once ","write_action":false,"price_micros":0,"input_schema":null},{"name":"events","description":"What is happening in crypto and equity markets, written up from posts across many sources.. level=events: what happened, what it names, how prices reacted where measured (impacts is empty on most events), and the posts behind it. level=storylines: the events of one development, threaded over days. level=arcs: storylines grouped into a larger movement. Search any level by topic with q, filter by as","write_action":false,"price_micros":0,"input_schema":null},{"name":"market","description":"Whole-market views, no asset needed.. view=mindshare ranks assets by share of attention over a period, with hot on those heating up. view=call_book is the crowd's long/short lean, one bar per hour plus a live tick: read crowdingPercentile rather than longShare, since the accounts lean long almost always. view=trending_contracts ranks contract addresses by how many posts pasted them, crypto only, a","write_action":false,"price_micros":0,"input_schema":null},{"name":"market_chat","description":"Ask Elfa for written market analysis grounded in its social data. Costs credits and varies by speed, so fast is the cheaper option. Pass sessionId from a previous reply to continue the same conversation. The reply includes sources: links to the posts and pages the research read (links only, not their text), so you can cite or check them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mentions","description":"Social mentions from X and Telegram. 1 credit per call. Returns engagement metrics and a link per post, not the post text. mode=top ranks one ticker's mentions by engagement. mode=search filters by keywords or by account. mode=news returns the token news feed, which is X posts from accounts tagged as news sources rather than articles from news outlets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"narratives","description":"Written narrative analysis with source links, for when counts are not enough. 5 credits per call. scope=market extracts the narratives moving the market. scope=keywords summarises events for keywords you supply, and can take over a minute to return.","write_action":false,"price_micros":0,"input_schema":null},{"name":"top_accounts","description":"X accounts ranked by standing (how much other accounts engage with them) or, with metric, by their track record as callers.. Standing measures attention, not accuracy; track is null for an account that has never opened a position. For the best callers use metric=alphaScore, not avgReturn, which a few big wins or a rally can top. Track metrics rank only accounts with at least 20 scored positions, o","write_action":false,"price_micros":0,"input_schema":null},{"name":"trending","description":"What is gaining social attention right now. 1 credit per call. scope=tokens returns tickers ranked by mention volume with the change against the previous window. scope=contracts_twitter and scope=contracts_telegram return trending contract addresses.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-11-03T01:06:45.641Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T01:06:45.579Z","components":{"code":{"score":25,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@elfa-ai/mcp","version":"4.10.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-11-02T04:35:40.883Z","repositoryUrl":"git+https://github.com/elfa-ai/mcp.git","weeklyDownloads":494}],"repo":{"found":true,"owner":"elfa-ai","repo":"mcp","archived":false,"pushedAt":"2026-11-02T04:33:52Z","stars":7,"forks":1,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/160121347?v=4","ownerCreatedAt":"2024-02-15T10:09:34Z","license":"MIT"},"icon":{"url":"https://docs.elfa.ai/img/favicon.ico","source":"registry","width":48,"height":48},"presence":{"stars":7,"forks":1,"downloadsWeek":494,"license":"MIT","lastPushAt":"2026-11-02T04:33:52.000Z","score":40}}}},"grade_history":[],"reviews":[]}