accueil / serveurs / Dev & Code / dev.useaxis/axis
dev.useaxis/axis
serveur MCP (Model Context Protocol)
Aucun comportement malveillant détecté au test comportemental.
Est-ce que dev.useaxis/axis est sûr ?
Au dernier audit MCP Hub, le serveur MCP « dev.useaxis/axis » est classé « Vérifié ». Aucun comportement malveillant détecté au test comportemental. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Versions auditées & empreintes
Vérifiez la version que vous utilisez : son empreinte doit correspondre à celle listée ici — sinon vous n'utilisez pas la version auditée.
Vous utilisez ce serveur ? Suivez-le (créez un compte) pour être alerté dès qu'une nouvelle version paraît ou que le verdict change.
Les 28 outils
- read_context≈ 163 tokens
**READ THIS FIRST** to understand the project's architecture, coding conventions, and active state. - Returns the content of core context files like `context.md` (Project Goals), `conventions.md` (Style Guide), or `activity.md`. - Usage: Call with `filename='context.md'` effectively. - Note: If you need the *current* runtime state (active locks, jobs), use the distinct resource `mcp://context/current` instead.
Paramètres, retour & exemple (1)
Paramètresfilename· string · requis
The name of the file to read (e.g., 'context.md', 'conventions.md')
Exemple d'appel{"name": "read_context", "arguments": {"filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_context≈ 238 tokens
**APPEND OR OVERWRITE** any shared context file. - To update the project soul (context.md / conventions.md), prefer `update_project_soul` instead — it handles both files in one call. - Use this tool for other context files (e.g., `activity.md`) or when you need to append to a file. - For short-term updates (like 'I just fixed bug X'), use `update_shared_context` (Notepad) instead. - Supports `append: true` (default: false) to add to the end of a file.
Paramètres, retour & exemple (3)
Paramètresappend· boolean · optionnel
Whether to append to the end of the file (true) or overwrite it (false). Default: false.content· string · requis
The new content to write or append.filename· string · requis
File to update (e.g. 'activity.md'). For soul files, prefer update_project_soul instead.
Exemple d'appel{"name": "update_context", "arguments": {"content": "texte", "filename": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_subscription_status≈ 125 tokens
**BILLING CHECK**: Returns the user's subscription tier (Pro vs Free), Stripe customer ID, and current period end. - If no email is provided, returns the subscription status of the current API key owner. - Critical for gating features behind paywalls.
Paramètres, retour & exemple (1)
Paramètresemail· string · optionnel
Optional. User email to check. If omitted, checks the subscription of the current API key owner.
Exemple d'appel{"name": "get_subscription_status", "arguments": {"email": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_usage_stats≈ 107 tokens
**API USAGE**: Returns token usage and request counts. - If no email is provided, returns usage for the current API key owner. - Useful for debugging rate limits or explaining quota usage to users.
Paramètres, retour & exemple (1)
Paramètresemail· string · optionnel
Optional. User email to check. If omitted, checks usage of the current API key owner.
Exemple d'appel{"name": "get_usage_stats", "arguments": {"email": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_codebase≈ 216 tokens
**CODE INTELLIGENCE SEARCH** — does what plain grep can't: returns ranked `file:line` hits PLUS `related` files that historically co-change with each hit, PLUS `definitions` of what the top result calls. - Use for 'where is X', 'how is Y done', anything before refactoring, and any time you need to know what code is structurally connected to a match (not just textually present). - Hybrid: semantic + full-text + trigram, reranked. Falls back to instant local search offline. - For pure literal-string lookups (a specific token or filename), grep is fine — this tool's edge is the related/definitions enrichment.
Paramètres, retour & exemple (1)
Paramètresquery· string · requis
Natural-language question or code query (symbol, behavior, or 'where is X done').
Exemple d'appel{"name": "search_codebase", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - index_codebase≈ 169 tokens
**INDEX THE REPO FOR SEARCH**: Walk the project, content-hash every file, and sync changed files into the searchable index so `search_codebase`/`deep_search` work and stay fresh. - Incremental: unchanged files are skipped (no re-embedding), deleted files are pruned. Safe and cheap to run often. - Run this once to set up search on a new project, and after large changes (e.g. a git pull) to refresh. Single-file edits are picked up by `index_file`. - Respects .gitignore and skips binaries/large files. Takes no arguments — it indexes the current project root.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "index_codebase", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_docs≈ 108 tokens
**DOCUMENTATION SEARCH**: Searches the official Axis documentation (if indexed). - Use this when you need info on *how* to use Axis features, not just codebase structure. - Falls back to local RAG search if the remote API is unavailable.
Paramètres, retour & exemple (1)
Paramètresquery· string · requis
Natural language search query.
Exemple d'appel{"name": "search_docs", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - propose_file_access≈ 383 tokens
**CRITICAL: REQUEST FILE LOCK** — call this before EVERY file edit, no exceptions. - Returns `GRANTED` if safe to proceed, `REQUIRES_ORCHESTRATION` if another agent holds the lock, or `REJECTED` if you tried to lock a directory. - **Lock individual files, not directories.** Directory locks block parallel work and are rejected. - Paths can be absolute or relative — they're normalized against the project root. - Required: `intent` (descriptive — 'Refactor auth to use JWT', NOT 'editing file') plus `filePath` or `filePaths`. `agentId` is optional (defaults to your session identity). - Editing several files? Pass `filePaths` to lock them in ONE call — all-or-nothing, so a partial batch never blocks others. - Locks expire after 30 minutes. Use `force_unlock` only as a last resort for crashed ag
Paramètres, retour & exemple (5)
Paramètresintent· string · requisagentId· string · optionnel
Optional — defaults to this session's unique identity.filePath· string · optionnel
One file to lock. Use `filePaths` instead for a multi-file batch.filePaths· array · optionnel
Lock several files in one call (all-or-nothing: on any denial, locks granted earlier in the batch are released).userPrompt· string · optionnel
Optional. The user prompt that triggered this lock, for audit trails. Server captures it best-effort if omitted.
Exemple d'appel{"name": "propose_file_access", "arguments": {"intent": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - release_file_access≈ 130 tokens
**RELEASE YOUR LOCK**: Release one file lock as soon as you no longer need it. - Use this before a job is complete when another agent can safely continue on the file. - Only the owning agent can release the lock; use `force_unlock` only for a crashed agent.
Paramètres, retour & exemple (2)
ParamètresagentId· string · optionnel
Optional — defaults to this session's unique identity.filePath· string · requis
Exemple d'appel{"name": "release_file_access", "arguments": {"filePath": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_locks≈ 70 tokens
**INSPECT ACTIVE LOCKS**: Return current file locks, owners, intents, and timestamps. - Call before planning overlapping work or when a lock conflict needs coordination.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_locks", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - verify_file_lock≈ 161 tokens
**TAMPER CHECK BEFORE WRITING**: Confirm a file you hold a lock on hasn't changed since the lock was granted. - Locks are advisory — another process can still edit the file. Call this right before overwriting to avoid clobbering concurrent changes. - Returns `OK` (unchanged), `CONFLICT` (modified/deleted — re-read before writing), `NO_LOCK`, or `UNKNOWN` (no fingerprint recorded).
Paramètres, retour & exemple (2)
ParamètresagentId· string · optionnel
Optional — defaults to this session's unique identity.filePath· string · requis
Exemple d'appel{"name": "verify_file_lock", "arguments": {"filePath": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_agents≈ 106 tokens
**WHO'S ONLINE**: List agents currently active or idle on this project. - Use to see your team before posting jobs — idle workers started early show up here, so you don't have to make the user wait for jobs before launching agents. - Returns each agent's status (active/idle), last activity, and last-seen time.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_agents", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - guarded_write≈ 184 tokens
**ENFORCED WRITE**: Write a file *through* your lock. The server writes only if you hold the lock AND the file is unchanged since you locked it — otherwise it returns NO_LOCK, DENIED (held by another agent), or CONFLICT (changed underneath you). Use this instead of a raw editor when you want Axis to actually *prevent* clobbering, not just detect it. Refreshes the lock's fingerprint on success.
Paramètres, retour & exemple (3)
ParamètresagentId· string · optionnel
Optional — defaults to this session's unique identity.content· string · requis
Full new file contents.filePath· string · requis
Exemple d'appel{"name": "guarded_write", "arguments": {"content": "texte", "filePath": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_shared_context≈ 136 tokens
**LIVE NOTEPAD**: The project's short-term working memory. - **ALWAYS** call this after completing a significant step (e.g., 'Fixed bug in auth.ts', 'Ran tests, all passed'). - This content is visible to *all* other agents immediately. - Think of this as a team chat or 'standup' update.
Paramètres, retour & exemple (2)
Paramètrestext· string · requisagentId· string · optionnel
Optional — defaults to this session's unique identity.
Exemple d'appel{"name": "update_shared_context", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - finalize_session≈ 164 tokens
**MANDATORY SESSION CLEANUP** — call this automatically when the user's request is fully complete. - Archives the current Live Notepad to a permanent session log. - **Clears ALL active file locks** and completed jobs. This is your safety net to ensure no dangling locks. - Resets the Live Notepad for the next session. - Do NOT wait for the user to say 'we are done.' When all tasks are finished, call this yourself. - **CRITICAL**: You MUST call this before ending ANY session. Failing to do so leaves file locks that block all other agents.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "finalize_session", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_project_soul≈ 229 tokens
**MANDATORY FIRST CALL**: Returns the project's goals, architecture, conventions, and active state. - Combines `context.md` (project goals/architecture) and `conventions.md` (coding standards/norms) into a single prompt. - You MUST call this as your FIRST action in every new session or task — before reading files, before responding to the user, before anything else. - If the project soul is not yet filled (you'll see a 'MANDATORY: Project soul is not yet filled' message), you MUST fill it before any other work: 1. Use `search_codebase` to explore the repo and infer project details. 2. Call `update_project_soul` with `context` and/or `conventions` params to populate the soul in one call. 3. If there is nothing to search, ask the user what the project is about, then call `update_projec
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_project_soul", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_project_soul≈ 248 tokens
**UPDATE THE PROJECT SOUL** — write project context and/or conventions in a single call. - The project soul consists of `context.md` (goals, architecture, core features) and `conventions.md` (coding standards, agent norms). - Provide `context` to update `context.md`, `conventions` to update `conventions.md`, or both. - Use this when `get_project_soul` says the soul is unfilled, or whenever you need to update long-term project knowledge. - This replaces the file contents entirely (not append). For appending, use `update_context` instead.
Paramètres, retour & exemple (2)
Paramètrescontext· string · optionnel
Full content for context.md (project overview, architecture, core features, deployment). Omit to leave unchanged.conventions· string · optionnel
Full content for conventions.md (language standards, styling, code patterns, agent norms). Omit to leave unchanged.
Exemple d'appel{"name": "update_project_soul", "arguments": {"context": "texte", "conventions": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - switch_project≈ 142 tokens
**SWITCH PROJECT**: Rebind the live MCP session to another workspace without reconnecting. - Use this when you move from one repository to another inside the same client session. - If `projectRoot` is omitted, the server re-detects from the current runtime hints.
Paramètres, retour & exemple (2)
ParamètresprojectName· string · optionnel
Optional explicit project name override.projectRoot· string · optionnel
Absolute path to the target repository root.
Exemple d'appel{"name": "switch_project", "arguments": {"projectName": "texte", "projectRoot": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - post_job≈ 193 tokens
**CREATE TICKET**: Post a new task to the Job Board. - Call this IMMEDIATELY when you receive a non-trivial task (2+ files, new features, refactors). Do not wait to be asked. - Break work into trackable jobs BEFORE you start coding. - Supports `dependencies` (list of other Job IDs that must be done first). - Priority: low, medium, high, critical.
Paramètres, retour & exemple (4)
Paramètrestitle· string · requispriority· string · optionnel · low | medium | high | criticaldescription· string · requisdependencies· array · optionnel
Array of Job IDs that must be completed before this job can be claimed.
Exemple d'appel{"name": "post_job", "arguments": {"title": "texte", "description": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_jobs≈ 103 tokens
**INSPECT THE JOB BOARD**: Return all current jobs with status, priority, owner, dependencies, and timestamps. - Use before dividing work across agents or when you need to claim a specific ticket.
Paramètres, retour & exemple (1)
ParamètresincludeCompleted· boolean · optionnel
Include done and cancelled jobs. Default: false.
Exemple d'appel{"name": "list_jobs", "arguments": {"includeCompleted": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - cancel_job≈ 68 tokens
**KILL TICKET**: Cancel a job that is no longer needed. - Requires `jobId` and a `reason`.
Paramètres, retour & exemple (2)
ParamètresjobId· string · requisreason· string · requis
Exemple d'appel{"name": "cancel_job", "arguments": {"jobId": "texte", "reason": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - release_job≈ 185 tokens
**RELEASE TICKET**: Put an abandoned in_progress job back on the board without cancelling it. - Use when another agent claimed a job and went silent — the job returns to 'todo' so anyone can pick it up. - Guarded: refuses if the assigned agent still looks active; pass `force: true` to override deliberately. - Parity with the hosted release_job tool.
Paramètres, retour & exemple (3)
Paramètresforce· boolean · optionnel
Release even if the assigned agent looks active. Default: false.jobId· string · requisagentId· string · optionnel
Optional — defaults to this session's unique identity; recorded as the releaser.
Exemple d'appel{"name": "release_job", "arguments": {"jobId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_shared_context≈ 113 tokens
**READ THE LIVE NOTEPAD**: Return the current shared notepad for this project — the team's short-term working memory (claims, decisions, blockers, handoffs). - Use to catch up on what other agents did without waiting for the ambient team-activity trailer. - Same shape as the hosted get_shared_context tool: { notepad, projectName }.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_shared_context", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - force_unlock≈ 93 tokens
**ADMIN OVERRIDE**: Break a file lock. - **WARNING**: Only use this if a lock is clearly stale or the locking agent has crashed. - Will forcibly remove the lock from the database.
Paramètres, retour & exemple (2)
Paramètresreason· string · requisfilePath· string · requis
Exemple d'appel{"name": "force_unlock", "arguments": {"reason": "texte", "filePath": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - claim_next_job≈ 156 tokens
**CLAIM WORK**: Claim the next job from the Job Board before starting it. - You MUST claim a job before editing files for that job. - Respects priority (Critical > High > ...) and dependencies (won't assign a job if its deps aren't done). - Returns the Job object if successful, or 'NO_JOBS_AVAILABLE'. - Call this immediately after posting jobs, and again after completing each job to pick up the next one.
Paramètres, retour & exemple (1)
ParamètresagentId· string · optionnel
Optional — defaults to this session's unique identity.
Exemple d'appel{"name": "claim_next_job", "arguments": {"agentId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - claim_job≈ 122 tokens
**CLAIM A SPECIFIC TICKET**: Atomically claim a known job by ID. - Prefer this over `claim_next_job` when work has been intentionally assigned or agents have disjoint scopes. - Rejects completed, already claimed, or dependency-blocked jobs.
Paramètres, retour & exemple (2)
ParamètresjobId· string · requisagentId· string · optionnel
Optional — defaults to this session's unique identity.
Exemple d'appel{"name": "claim_job", "arguments": {"jobId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - complete_job≈ 224 tokens
**CLOSE TICKET**: Mark a job as done and release file locks. - Call this IMMEDIATELY after finishing each job — do not accumulate completed-but-unclosed jobs. - Requires `outcome` (what was done). - If you are not the assigned agent, you must provide the `completionKey`. - **This is the primary way to release file locks.** Leaving jobs open holds locks and blocks other agents. - REMINDER: After completing all jobs, you MUST also call `finalize_session` to clear any remaining locks.
Paramètres, retour & exemple (4)
ParamètresjobId· string · requisagentId· string · optionnel
Optional — defaults to this session's unique identity.outcome· string · requiscompletionKey· string · optionnel
Optional key to authorize completion if not the assigned agent.
Exemple d'appel{"name": "complete_job", "arguments": {"jobId": "texte", "outcome": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - index_file≈ 207 tokens
**UPDATE SEARCH INDEX**: Add or refresh a single file in the RAG vector database. - Call this immediately after creating a new file or significantly refactoring an existing one — keeps `search_codebase` results fresh. - Only `filePath` is required. If you omit `content`, the server reads the file from disk itself — preferred, since it avoids round-tripping large file bodies through the tool call. - Pass `content` explicitly only when indexing material that doesn't live on disk (e.g. in-memory generated source).
Paramètres, retour & exemple (2)
Paramètrescontent· string · optionnel
Optional. Omit to have the server read filePath from disk.filePath· string · requis
Absolute or project-relative path.
Exemple d'appel{"name": "index_file", "arguments": {"filePath": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
Badge pour votre README
Ce serveur a passé le pentest comportemental. Le badge porte son nom et renvoie à cette fiche — la preuve, c'est la fiche (verdict live qu'on contrôle), pas l'image.
[](https://dokore.fr/serveur/dev.useaxis--axis)
<a href="https://dokore.fr/serveur/dev.useaxis--axis"><img src="https://dokore.fr/badge/dev.useaxis--axis.svg" alt="Vérifié par MCP Hub" height="20"></a>
Réévalué en continu : si le comportement change, le verdict tombe et le badge disparaît. Un badge qui ne pointe pas vers une fiche dokore.fr ne prouve rien. Comment ça marche
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».
Source
@virsanghavi/axis-server@1.14.2