Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

AIMFP

PYPI · AIMFP

Database-driven directives and project tracking for modular functional-procedural AI coding

Available components

76 Trust /100

Last scanned (5 hours ago)

Scores higher than 74% of PyPI servers

Category Project Management

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency84
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to aryanduntley/aimfp). View diagnostics → Pass
  • License check failed: the license (PolyForm-Noncommercial-1.0.0) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 4 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 29231 tokens (~97/item across 300 items; 300 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety96
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 30 of 36 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "detect_conflicts_before_merge" implies "merge" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 301 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 61

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/aimfp@1.70.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo aryanduntley/aimfp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/aryanduntley/aimfp/.github/workflows/python-publish.yml@refs/tags/v1.70.0
Rekor log index 3615397773
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:fcce2705118cfc740b66bc24b6173123b4aa8c35fdcb0d00ace41d8fdde7cac7

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 1 package
Packages resolved 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 300 exposed · ~27,909 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
create_project ~144

Initialize project entry (one per database)

NameTypeReqDescription
goalsarrayyesArray of goal strings (e.g., ['Fast computation', 'No OOP'])
namestringyesProject name (e.g., 'MatrixCalculator')
purposestringyesProject purpose (e.g., 'Build a pure functional matrix math library')
statusstring–'active', 'paused', 'completed', 'abandoned'
user_directives_statusstring–NULL (Case 1), 'pending_discovery', 'pending_parse', 'in_progress', 'active', 'disabled'
versioninteger–Tracks idea evolution (starts at 1)

No output schema declared.

No examples provided.

create_project_backup ~93

Create a backup of .aimfp-project/ right now, ignoring any threshold. Zips everything except backups/ and watchdog/, adds a generated backup_summary.md, and rotates old archives per the backup_count setting, naming every archive it deletes (rotated, plus a warning sentence). The on-demand counterpart to the automatic inactivity check — call this when aimfp_run reports a scheduled backup due, or before any risky operation.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

create_state_database ~51

Create per-project state database (.state/runtime.db) from SQL schema. FP-compliant replacement for mutable global variables.

NameTypeReqDescription
source_directorystringyesAbsolute path to project source directory (from infrastructure.source_directory)

No output schema declared.

No examples provided.

create_user_branch ~40

Create work branch following aimfp-{user}-{number} convention

NameTypeReqDescription
purposestringyesBranch purpose description
userstringyesUsername

No output schema declared.

No examples provided.

deactivate_user_directive ~44

Set directive status to 'paused'. Does NOT stop services - AI handles service shutdown via directive workflow.

NameTypeReqDescription
directive_idintegeryesID of the directive to deactivate

No output schema declared.

No examples provided.

delete_completion_path ~80

Delete completion path with milestone validation

NameTypeReqDescription
idintegeryesCompletion path ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_custom_return_statement ~73

Delete custom return statement(s) for a helper function. By ID, by text, or all for a helper.

NameTypeReqDescription
helper_namestringyesHelper function name
statementstring–Specific statement text to delete (optional)
statement_idinteger–Specific row ID to delete (optional)

No output schema declared.

No examples provided.

delete_file ~82

Delete file with comprehensive cross-reference validation

NameTypeReqDescription
file_idintegeryesFile ID to delete
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_flow ~80

Delete flow with file validation

NameTypeReqDescription
flow_idintegeryesFlow ID to delete
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_function ~226

Delete a function, deciding explicitly what happens to its interactions: refused (with the edges listed) unless repoint_to moves them to the function that took over its job, or confirm_cascade removes them. Every moved or removed edge is recorded in the deletion note so it can be undone. Type relationships must be unlinked first.

NameTypeReqDescription
confirm_cascadeboolean–Delete the function's interactions with it. Without repoint_to or confirm_cascade, a function with interactions is refused and the edges are listed.
function_idintegeryesFunction ID to delete
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'
repoint_tointeger–Function ID that takes over this function's interactions (the split/move case). Edges that would become self-edges or duplicates are dropped. Every moved or dropped edge is written into the deletion…

No output schema declared.

No examples provided.

delete_interaction ~78

Delete interaction

NameTypeReqDescription
interaction_idintegeryesInteraction ID to delete
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_item ~77

Delete item with status validation

NameTypeReqDescription
idintegeryesItem ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_milestone ~80

Delete milestone with task validation

NameTypeReqDescription
idintegeryesMilestone ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_module ~38

Delete a module. CASCADE removes module_files junction entries. Files themselves are NOT deleted.

NameTypeReqDescription
module_idintegeryesModule ID to delete

No output schema declared.

No examples provided.

delete_note ~26

Delete note (discouraged)

NameTypeReqDescription
idintegeryesNote ID to delete

No output schema declared.

No examples provided.

delete_project_entry ~92

Smart delete with automatic routing to specialized functions when needed

NameTypeReqDescription
idintegeryesRecord ID
note_reasonstringyesDeletion reason
note_severitystringyes"info", "warning", "error"
note_sourcestringyes"ai" or "user"
note_typestringyes"entry_deletion"
tablestringyesTable name

No output schema declared.

No examples provided.

delete_reserved ~121

Delete abandoned reserved entries (escape hatch for cancelled reserve operations)

NameTypeReqDescription
idintegeryesReserved record ID to delete
note_reasonstringyesDeletion reason (e.g., 'User cancelled operation', 'Correcting reservation error')
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'
tablestringyesTable name (must be 'files', 'functions', or 'types')

No output schema declared.

No examples provided.

delete_settings_entry ~42

Delete entry from user_preferences.db table

NameTypeReqDescription
record_idintegeryesRecord ID to delete
tablestringyesTable name in user_preferences.db

No output schema declared.

No examples provided.

delete_sidequest ~86

Delete sidequest with item validation (same logic as delete_task)

NameTypeReqDescription
idintegeryesSidequest ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_subtask ~86

Delete subtask with item validation (same logic as delete_task)

NameTypeReqDescription
idintegeryesSubtask ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_task ~77

Delete task with item validation

NameTypeReqDescription
idintegeryesTask ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_theme ~80

Delete theme with flow validation

NameTypeReqDescription
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'
theme_idintegeryesTheme ID to delete

No output schema declared.

No examples provided.

delete_type ~80

Delete type with relationship validation

NameTypeReqDescription
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'
type_idintegeryesType ID to delete

No output schema declared.

No examples provided.

delete_type_function ~80

Remove type-function relationship

NameTypeReqDescription
idintegeryestypes_functions junction table ID
note_reasonstringyesDeletion reason
note_severitystringyes'info', 'warning', 'error'
note_sourcestringyes'ai' or 'user'
note_typestring–'entry_deletion'

No output schema declared.

No examples provided.

delete_user_custom_entry ~118

Delete entry from user_directives.db table, writing an entry_deletion note in the same transaction

NameTypeReqDescription
note_reasonstring–Why the row was deleted; recorded in the entry_deletion note ('no reason given' when omitted)
note_sourcestring–Who deleted it: 'ai', 'user', or 'directive' (default 'ai'); stored in the note's metadata_json
record_idintegeryesRecord ID to delete
tablestringyesTable name in user_directives.db

No output schema declared.

No examples provided.

detect_conflicts_before_merge ~37

Dry-run merge analysis - retrieves potential conflict data for AI to evaluate

NameTypeReqDescription
source_branchstringyesBranch to merge from

No output schema declared.

No examples provided.

detect_external_changes ~20

Compare current Git HEAD with project.last_known_git_hash

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

detect_state_conflicts ~127

(For use with InterCommAIMFP) OPTIONAL pre-apply planning aid: export each pending worker branch and report where two or more branches touch the SAME semantic entity or edge, so the master can re-partition or deliberately order integration BEFORE applying any changeset. Pure read (built entirely from export_state_changeset). An overlap is a heuristic warning, not a verdict — the authoritative 3-way resolution still happens in apply_state_changeset.

NameTypeReqDescription
branchesarrayyesList of {branch, base_commit, worker_id?} objects to cross-reference for semantic-key overlap

No output schema declared.

No examples provided.

execute_merge ~35

Execute git merge and return result. Updates work_branches table on success.

NameTypeReqDescription
source_branchstringyesBranch to merge from

No output schema declared.

No examples provided.

export_state_changeset ~261

(For use with InterCommAIMFP) Export a semantic changeset of project.db between two committed git states (branch point -> branch tip), expressed entirely in stable semantic keys (file path, file+function/type name, module/theme/flow/path name, and work-hierarchy slugs) with branch-local integer PKs stripped. Each entity is classified add/modify/delete and each edge add/remove. This is the integer-free artifact the master applies to merge a worker's project-state into main without binary-blob conflicts or PK collisions. The changeset is ALSO persisted server-side under .aimfp-project/changesets/ and a small changeset_id handle + counts summary are returned, so the master can drive apply by handle instead of re-transcribing the full object. Pure read of git blobs (the export itself never mutates project.db); persistence writes only a JSON file under .aimfp-project/.

NameTypeReqDescription
base_commitstringyesGit commit the branch was based on (the 3-way base / branch point)
branchstringyesGit ref (branch name or commit) whose committed project.db is the branch intent
worker_idstring–Optional InterCommAIMFP worker identity; the master supplies it

No output schema declared.

No examples provided.

file_has_changed ~35

Check if file changed using Git (if available) or filesystem timestamp

NameTypeReqDescription
file_idintegeryesFile ID to check

No output schema declared.

No examples provided.

finalize_file ~128

Mark a reserved file as tracked after writing it to disk. The path must be a regular file relative to the project root: '.', a directory, or a path leaving the project is refused. Triggers flow assignment and function/type tracking checks.

NameTypeReqDescription
file_idintegeryesReserved ID
languagestringyesLanguage
namestringyesFinal name with _id_xx suffix
pathstringyesFile path
skip_id_namingboolean–If true, skip _id_XX pattern validation (for files where ID naming was skipped during reservation)

No output schema declared.

No examples provided.

finalize_files ~75

Batch-finalize multiple reserved files after writing them to disk. All-or-nothing operation. Each path must be a regular file relative to the project root ('.' or a directory is refused).

NameTypeReqDescription
filesarrayyesArray of file objects [{file_id, name, path, language, skip_id_naming?}, ...]

No output schema declared.

No examples provided.

finalize_function ~120

Mark a reserved function as tracked after writing it. Triggers interaction and type-function relationship checks.

NameTypeReqDescription
file_idintegeryesFile ID
function_idintegeryesReserved function ID
namestringyesFinal name with _idxx suffix
parametersarray–Function parameters
purposestring–Function purpose
returnsobject–Return value specification
skip_id_namingboolean–If true, skip _id_XX pattern validation (for functions where ID naming was skipped during reservation)

No output schema declared.

No examples provided.

finalize_functions ~61

Batch-finalize multiple reserved functions after writing them. Triggers interaction and type-function checks for all.

NameTypeReqDescription
functionsarrayyesArray of function objects [{function_id, name, file_id, purpose, parameters, returns, skip_id_naming?}, ...]

No output schema declared.

No examples provided.

finalize_type ~115

Finalize reserved type after creation

NameTypeReqDescription
definition_jsonobjectyesADT definition
descriptionstring–Type description
file_idinteger–File ID where type is defined
linksobject–Links to related functions
namestringyesFinal name with _idxx suffix
skip_id_namingboolean–If true, skip _id_XX pattern validation (for types where ID naming was skipped during reservation)
type_idintegeryesReserved type ID

No output schema declared.

No examples provided.

finalize_types ~48

Finalize multiple reserved types

NameTypeReqDescription
typesarrayyesArray of type objects [{type_id, name, definition_json, description, links, file_id, skip_id_naming?}, ...]

No output schema declared.

No examples provided.

find_directive_by_intent ~69

Match a natural-language user request to the most relevant directive(s). Use when the user describes what they want and you need to find which directive handles it.

NameTypeReqDescription
thresholdnumber–Confidence threshold
user_requeststringyesUser's natural language request describing behavior to change

No output schema declared.

No examples provided.

find_directives_by_intent_keyword ~60

Find directive IDs matching one or more intent keywords (direct keyword lookup)

NameTypeReqDescription
keywords–yesSingle keyword string or array of keywords
match_modestring–"any" for OR logic, "all" for AND logic

No output schema declared.

No examples provided.

get_active_user_directives ~28

Get all user directives with status='active'. Convenience query for checking active directive count.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_completion_paths ~32

Get the project's ordered completion roadmap (stages from setup through completion). Each path contains milestones which contain tasks.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_directive_keywords ~25

Get list of all unique intent keywords available for searching (simple list)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_directive_names ~80

Get list of all directive names (or filtered by types). Returns names only, NOT full directive data. AI queries by name when needs details.

NameTypeReqDescription
typesarray–Optional array of directive types to filter: ['fp', 'project', 'git', 'user_preferences', 'user_system']. If not provided, returns ALL directive names.

No output schema declared.

No examples provided.

get_all_directives ~20

Load all directives for caching (special orchestrator)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_flows ~114

Get project flows (architectural groupings describing intended behavior): all of them, or the ones in flow_ids. Lean by default (descriptions null); detail_level='full' for descriptions. Check BEFORE starting any task to understand the architecture.

NameTypeReqDescription
detail_levelstring–'lean' (default): descriptions are null. 'full': descriptions included.
flow_idsarray–Only these flows, ordered by ID. IDs with no flow are named in return_statements. Omit for every flow.

No output schema declared.

No examples provided.

get_all_infrastructure ~34

Get all infrastructure entries including standard fields (even if empty). Returns complete infrastructure table for session bundling and status reports.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_intent_keywords_with_counts ~24

Get all unique intent keywords with usage counts for analytics

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_modules ~26

Get all modules in the project. Returns list of all module records sorted by name.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_all_themes ~30

Get all project themes (high-level architectural areas). Use to orient on project structure before starting work.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_categories ~13

Get all directive categories

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the AIMFP MCP server?

AIMFP runs locally as a PyPI package, launched with uvx aimfp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · aimfp

# add to Claude Code
claude mcp add aryanduntley-aimfp -- uvx aimfp
Common questions

What is the AIMFP MCP server?

AIMFP is an MCP server listed in the public MCP registry as io.github.aryanduntley/aimfp. Database-driven directives and project tracking for modular functional-procedural AI coding. This page covers its PyPI package (aimfp).

Is the AIMFP MCP server safe to use?

AIMFP scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the AIMFP MCP server expose?

AIMFP exposes 300 tools: acknowledge_notice, activate_user_directive, add_completion_path, add_directive_preference, add_file_flows, and 295 more. Their descriptions and schemas cost roughly 27,909 tokens of context every time the server is loaded.

Is the AIMFP MCP server still maintained?

AIMFP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the AIMFP MCP server under?

AIMFP declares the PolyForm-Noncommercial-1.0.0 licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.