Configuration
AIProfile uses these defaults when no config.yaml is present. Create or edit config.yaml to change settings:
server:
port: 3000 # HTTP port the MCP server listens on
owner:
name: null # learned through ingestion
preferred_language: null
llm:
provider: node-llama-cpp
model_path: ./models/qwen3-4b-instruct-q4_k_m.gguf
temperature: 0.2
max_tokens: 1200
context_tokens: 4096
memory:
path: ./memory
mode: encrypted # default; set to plain only for local testing/debugging
auth:
mode: local # default; local OAuth grants backed by encrypted storage
anonymous_enabled: true # unauthenticated clients can only use public-safe ask
# issuer: https://abc123.ngrok-free.app
# resource: https://abc123.ngrok-free.app/mcp
safety:
allow_first_person: true
public_can_access_private_memory: false
require_disclaimer_for_inferred_answers: trueServer
server.port controls the local HTTP port. The MCP endpoint is:
http://localhost:<port>/mcpLocal model
llm.model_path points to the GGUF model file. Use Model Setup to download a curated model and optionally update config.yaml.
llm.max_tokens controls the response token budget for local model calls.
llm.context_tokens is the model context window used for prompt budgeting. Ingest rejects oversized source text before calling the model when the estimated prompt would exceed this window. If you use a model with a larger context window, increase this value to match the model.
Memory mode
memory.mode: encrypted is the default and recommended setting. It stores memory in an encrypted SQLite database.
memory.mode: plain stores memory as an unencrypted on-disk SQLite database. Use plain mode only for local testing and debugging.
Authentication
auth.mode: local enables local OAuth grants and access tokens backed by the encrypted memory vault. In this mode, encrypted memory is required.
auth.mode: off disables token checks and exposes the full MCP tool surface without authentication. Use it only for isolated local testing.
auth.anonymous_enabled: true documents the intended anonymous access behavior. Anonymous access is limited to public-safe ask.
auth.issuer is the externally visible OAuth issuer origin. Set it to the public HTTPS tunnel origin for ChatGPT or other web-hosted clients.
auth.resource is the externally visible MCP URL. Access tokens are audience-bound to the resource URL, so update this whenever your ngrok URL changes.
Non-interactive startup
For service managers or MCP clients that start the server without an interactive terminal, provide the memory password through an environment variable:
AIPROFILE_PASSWORD='your memory password' npm start
AIPROFILE_PASSWORD='your memory password' npx --yes --ignore-scripts=false aiprofile serveOr store the password in a local file and pass the file path:
npm start -- --password-file ./local-password-file
npx --yes --ignore-scripts=false aiprofile serve --password-file ./local-password-fileKeep password files outside version control.