abs (automatiabcn/abs) is an MCP server listed on the M8ven Trust Index. It scores 70 out of 100, grade C. It declares 167 tools. No publisher has claimed this listing.

C
Caution
70/100

abs

Self-hosted AI orchestrator — 100+ MCP tools, 6-provider cascade, RAG hybrid. Automate the chaos on your own server. An Automatia BCN product.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

automatiabcn

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Secret credentials may flow to a network call
3 flows detected: GROQ_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY. We can’t prove the destination matches the brand the credential belongs to.
⚠️
Tool descriptions don’t match what handlers do
1 tool describes read intent but its handler mutates — meetings_list (line 126: db.exec()
🔐
You'll be asked for 8 credentials: ABS_STRIPE_SECRET_KEY, GROQ_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GOOGLE_API_KEY, COHERE_API_KEY, LICENSE_KEY, ABS_LICENSE_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes165 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

admin_overview

Aggregated admin snapshot (billing/security/compliance/beta/vault).

ask_haiku

Claude Haiku 4.5 — fast Anthropic model. Short tasks, classification.

ask_sonnet

Claude Sonnet 4.6 — balanced quality/speed. Default for code and analysis.

ask_opus

Claude Opus 4.7 — strongest Anthropic model. Deep analysis, critical work.

ask_groq_fast

GPT-OSS 20B (Groq) — ultra fast (<0.4s). Short questions, classification.

ask_scout

Llama 4 Scout 17B (Cloudflare) — instruction following, short tasks.

ask_cerebras

Cerebras — 235B MoE, ~0.3s latency, 1M tokens/day on the free tier.

ask_gemini

Gemini 2.5 Flash — fast multimodal. Templates, short generation.

ask_gemini_pro

Gemini 2.5 Pro — 1M context, deep analysis, multimodal.

ask_cf

CloudFlare Llama 3.3 70B FP8 Fast — edge latency.

ask_cf_gptoss

CloudFlare GPT-OSS 120B — 120B at the edge; alternative to the Groq route.

ask_kimi

Kimi K2.5 (CloudFlare) — code generation and planning. 256K context.

ask_phi4

Phi-4 via local Ollama — reasoning. Requires OLLAMA_URL to be set.

beta_metrics

Beta waitlist counts, recent signups, paid-conversion rate.

daily_cost

Estimated cost so far today: tool usage priced against provider configs.

learnings_recent

The most recent N learnings, plus per-category counts.

learnings_log

Record a learning by hand. category: bugfix|delegation|arch|security|perf|ux.

billing_status

Billing dashboard: Stripe products, license counts, revenue, recent webhooks.

capability_status

What this install can do with the keys it has, and what one more buys.

subscription_check

Ask a subscription CLI whether it can actually answer.

code_graph_build

Index a workspace root into the call-graph (run before querying it).

code_blast_radius

What breaks if `target` (symbol name or file path) changes — its transitive callers.

code_callers

Direct callers of a symbol.

graph_related

Symbols related to `symbol` within N hops (callers + callees, undirected).

cohere_alert_status

Cohere usage, latest alert, and severity (ok|warn|danger|limit_hit).

cohere_alerts_recent

The most recent N alerts, newest first.

cohere_alert_ack

Mark an alert acknowledged.

ask_cohere_command_r

Cohere Command R+ 08-2024 — enterprise chat, RAG-friendly.

ask_cohere_aya

Cohere Aya Expanse 32B — 101 languages; the multilingual workhorse.

ask_cohere_embed

Cohere embed-english-v3.0 — returns a 1024-dim embedding as JSON.

approvals_list

The approval queue for this tenant: items plus the risk-bucket summary the Approval Center header shows. `status`: pending | approved | rejected | all.

approvals_decide

Approve, reject or edit one pending approval item. `decision`: approve | reject | edit. An item that was already decided is refused, not rewritten.

meetings_list

Recorded meetings for this tenant, newest first: status, duration, speaker count, summary and whether the transcript reached the knowledge base.

meeting_get

One meeting: summary, speakers, the transcript segments, and the action items detected in it — what a task panel turns into work.

workflow_list

The workflows this tenant has saved: name, how many steps, when it was last touched. Reading only — running one is not exposed here, because a workflow can call out to the network and spend money, and that decision belongs behind the approval path rather than a panel button.

workflow_schedule_list

The schedules that actually fire for this account: when each next runs, when it last ran, and the reason it stopped if it did.

workflow_schedule_set

Schedule a saved workflow: 5-field cron, UTC (e.g. '0 9 * * 1' = Mondays at 09:00). Scheduled runs use the free provider chain only. An expression this scheduler cannot run is refused with the reason, rather than stored as a schedule that silently never fires.

workflow_schedule_delete

Stop a schedule. Only this account's own schedules are removable here.

compliance_status

GDPR compliance posture dashboard.

composer_propose

Propose a multi-file edit for `task`, graded + blast-annotated, applied to nothing.

ask_compound

Groq Compound — multi-step agentic (planning + tool calling).

ask_compound_mini

Groq Compound Mini — fast agentic (short multi-step tasks).

demo_readiness_status

Demo readiness snapshot (demo mode flag, seed version, assets).

email_queue_status

Onboarding email queue dashboard.

quota_meter_status

Live per-provider request quota for this tenant: used, left, percent, throttle state and reason. Providers with no known limit are reported as unlimited rather than shown as an empty gauge.

workspace_set

Tell the server which project the caller has open.

cascade_ask

Ask the provider cascade and return the answer WITH its provenance: which provider answered, the failover trail, tokens, latency and estimated cost. Use this instead of ask_* when the caller shows the user where the answer came from.

pipeline_run

Run a multi-model pipeline and return its STEPS as structured data — step name, model, elapsed, ok — so the caller can draw the delegation chain instead of parsing a summary line. `kind`: qual_code | qual_analysis | qual_tr | race | race_code.

provider_keys_list

Which providers this account has its own key for. Metadata only — plaintext keys are never returned, by this tool or any other.

provider_key_set

Store this account's own key for a provider (BYOK), encrypted at rest. The key is scoped to the CALLING USER — organisation-wide keys stay in the panel, so a delegated editor token cannot rewrite an org's credentials. The value is never echoed back.

provider_key_delete

Remove this account's own key for a provider. Only the caller's own key is removable here — the org's key is not this token's to delete.

providers_chain

The cascade in the order it will actually be tried for THIS caller: position, free or paid, whose key answers, breaker and throttle state.

title_status

Everything the editor's title bar shows, in one call.

fim_complete

Text to insert at the cursor — the Tab / ghost-text completion.

fullstack_detect

Detect the layer of a prompt: frontend|backend|database|devops|testing|docs|architecture.

fullstack

Layer-aware code generation. layer="auto" detects the layer from the prompt.

fullstack_scan

Inventory a project directory: file counts by extension, size, manifests.

fullstack_plan

Scan a project, then have a model turn the inventory into a task plan.

gemini_image

Gemini 2.5 Flash Image — generate an image from a prompt (base64 PNG).

gemini_image_pro

Gemini Image Pro (Nano Banana Pro) — higher-quality image generation.

gemini_image_edit

Edit a base64 image according to the prompt.

gemini_video

Start a Veo 3.0 video job. Returns an operation name — video generation is long-running, so poll it with gemini_video_status.

gemini_video_status

Poll a video job by the operation name gemini_video returned.

gemini_video_wait

Block until a video job finishes, polling every 15s, up to max_seconds.

gemini_lite

Gemini Flash Lite — cheapest, fastest single-shot answer.

gemini_url

Ask a question about the contents of a URL (Gemini fetches it itself).

gemini_search

Answer grounded in Google Search, with the source URLs appended.

gemini_structured

Schema-guaranteed JSON output. schema_json must be a valid JSON schema.

freeze

Arm freeze mode: Write/Edit is allowed only under project_dir.

investigate

Arm investigate mode: hooks warn on an edit that was not preceded by reading the code. An empty topic disarms it.

symbol_search

Symbol DB substring search — name LIKE %q%, opsiyonel kind=function|class|import.

rag_hybrid

RAG hybrid retrieval — BM25 + cosine fusion. alpha_semantic 0=BM25, 1=cosine.

judge_persona_predict

predict the acceptance probability of these scores with an ML model.

judge_stats

Judgment averages over the last N days: drift_signal, outcome_counts, top_files.

judge_recent

The most recent N judgments (id, ts, file, ast/llm/combined, outcome).

judge_outcome

Record the outcome of a judgment (accept|reject) — this is the training signal.

judge_persona_status

Current persona thresholds, last training run, and history size.

judge_persona_train

Retune the persona from recorded judge outcomes. Below min_samples it refuses with 'insufficient_data' rather than fitting to noise.

judge_persona_reset

Reset the persona to its defaults. The outcome history is kept, so a later train() can rebuild from the same evidence.

license_status

Licence and demo status, as JSON.

demo_status

Demo countdown durum (started/expired/days_remaining).

news_digest

5-source AI/dev news digest (Anthropic / OpenAI / Gemini / GH / MCP).

note_save

Create or update a note. Pass note_id to update an existing one.

note_list

List notes, newest first (title + preview).

note_get

Fetch one note in full by id.

note_search

Lexical search over notes.

note_delete

Delete a note by id.

perf_summary

Results of the last benchmark run (cascade, vault, symbol, watchdog).

qual_code

QUALITY CODE — generate (kimi + gpt-oss-20b in parallel) -> verify -> fix.

qual_tr

QUALITY TURKISH — generate (qwen32b + gemini in parallel) -> review -> polish.

qual_analysis

QUALITY ANALYSIS — three independent takes (gptoss, kimi2, gemini-pro) -> synthesis.

qual_translate

QUALITY TRANSLATION — translate -> back-translate -> compare -> refine.

race

RACE — gpt-oss-120b vs kimi vs kimi2 in parallel; first success wins.

race_code

RACE CODE — CF Kimi K2.5 vs Groq GPT-OSS 120B; first success wins.

race_tr

RACE TR — Qwen32B vs Gemini 2.5 Flash; first success wins.

race_local

RACE LOCAL — Ollama phi4 vs gemma2. Requires ABS_OLLAMA_URL.

qual_human

QUAL + HUMANIZE — rewrites the qual-tr output to read less like model output.

qual_code_human

QUAL CODE + HUMANIZE — rewrites the qual-code output without the model's narration comments.

humanize_score

Heuristic 'AI-written' score for a text (0 = human, 1 = model). Returns JSON.

auto_verify_code

Verify code with three local models in parallel — security, tests, lint.

65 further tools are not listed here. The complete surface is in the source.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configABS_MCP_ALLOWED_HOSTS
configABS_PIPER_MODEL_DIR
configABS_TEST_MODE
configABS_PHONE_HOME_DISABLEDhash, instance URL, version, no content — and =1
configABS_HEARTBEAT_INTERVAL_SECS
configABS_REPO_ROOT
configABS_COMPILE_CYTHON
🔐 secretABS_STRIPE_SECRET_KEY
configABS_BILLING_ENABLED
configABS_SMTP_HOST
configWATCHDOG_DISCORD_WEBHOOK
🔐 secretGROQ_API_KEY
🔐 secretANTHROPIC_API_KEY
🔐 secretGEMINI_API_KEY
🔐 secretGOOGLE_API_KEY
🔐 secretCOHERE_API_KEY
🔐 secretLICENSE_KEY
🔐 secretABS_LICENSE_KEY
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

169/169 tools missing one or more hints — admin_overview (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); ask_haiku (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); ask_sonnet (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +166 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Destructive tools are labelled

2 tools perform destructive updates without destructiveHint — freeze deletes at line 36 (_FREEZE_FILE.unlink()); investigate deletes at line 51 (_INVESTIGATE_FILE.unlink())

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Descriptions match behaviour

1 tool describes read intent but its handler mutates — meetings_list (line 126: db.exec()

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/automatiabcn/abs?variant=verified)](https://m8ven.ai/mcp/automatiabcn/abs)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: c8bb60b7c970eea0fc690c5b8b16210276dcdabf
code hash: 6d2136cbdc53b226f15e72a4c6d38769108815d81e3523f9d2c83add464fa961
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client