graphiti/mcp_server/config/config-neptune.yaml
2025-11-24 14:22:27 -07:00

131 lines
4.6 KiB
YAML

# Graphiti MCP Server Configuration for AWS Neptune
# This configuration is optimized for AWS Neptune Database or Analytics
server:
transport: "http" # HTTP transport (SSE is deprecated)
host: "0.0.0.0"
port: 8000
llm:
provider: "openai" # Options: openai, azure_openai, anthropic, gemini, groq
model: "gpt-5-mini"
max_tokens: 4096
providers:
openai:
api_key: ${OPENAI_API_KEY}
api_url: ${OPENAI_API_URL:https://api.openai.com/v1}
organization_id: ${OPENAI_ORGANIZATION_ID:}
azure_openai:
api_key: ${AZURE_OPENAI_API_KEY}
api_url: ${AZURE_OPENAI_ENDPOINT}
api_version: ${AZURE_OPENAI_API_VERSION:2024-10-21}
deployment_name: ${AZURE_OPENAI_DEPLOYMENT}
use_azure_ad: ${USE_AZURE_AD:false}
anthropic:
api_key: ${ANTHROPIC_API_KEY}
api_url: ${ANTHROPIC_API_URL:https://api.anthropic.com}
max_retries: 3
gemini:
api_key: ${GOOGLE_API_KEY}
project_id: ${GOOGLE_PROJECT_ID:}
location: ${GOOGLE_LOCATION:us-central1}
groq:
api_key: ${GROQ_API_KEY}
api_url: ${GROQ_API_URL:https://api.groq.com/openai/v1}
embedder:
provider: "openai" # Options: openai, azure_openai, gemini, voyage
model: "text-embedding-3-small"
dimensions: 1536
providers:
openai:
api_key: ${OPENAI_API_KEY}
api_url: ${OPENAI_API_URL:https://api.openai.com/v1}
organization_id: ${OPENAI_ORGANIZATION_ID:}
azure_openai:
api_key: ${AZURE_OPENAI_API_KEY}
api_url: ${AZURE_OPENAI_EMBEDDINGS_ENDPOINT}
api_version: ${AZURE_OPENAI_API_VERSION:2024-10-21}
deployment_name: ${AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT}
use_azure_ad: ${USE_AZURE_AD:false}
gemini:
api_key: ${GOOGLE_API_KEY}
project_id: ${GOOGLE_PROJECT_ID:}
location: ${GOOGLE_LOCATION:us-central1}
voyage:
api_key: ${VOYAGE_API_KEY}
api_url: ${VOYAGE_API_URL:https://api.voyageai.com/v1}
model: "voyage-3"
database:
provider: "neptune" # Using AWS Neptune for this configuration
providers:
neptune:
# Neptune Graph Endpoint
# For Neptune Database: neptune-db://your-cluster.region.neptune.amazonaws.com
# For Neptune Analytics: neptune-graph://g-your-graph-id
host: ${NEPTUNE_HOST:neptune-db://localhost}
# Amazon OpenSearch Serverless (AOSS) Endpoint for full-text search
# Required for hybrid search capabilities
# Example: your-collection.us-east-1.aoss.amazonaws.com
aoss_host: ${AOSS_HOST}
# Neptune connection port (default: 8182 for Neptune Database)
port: ${NEPTUNE_PORT:8182}
# AOSS connection port (default: 443 for HTTPS)
aoss_port: ${AOSS_PORT:443}
# AWS Region (e.g., us-east-1, us-west-2)
# If not specified, will be detected from AWS CLI or instance metadata
region: ${AWS_REGION:}
# AWS Credentials:
# Neptune uses the standard AWS credential chain:
# 1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN)
# 2. AWS credentials file (~/.aws/credentials)
# 3. AWS CLI configuration (aws configure)
# 4. IAM role (when running on EC2, ECS, Lambda, etc.)
#
# Configure credentials using one of these methods:
# - Run: aws configure
# - Set environment variables:
# export AWS_ACCESS_KEY_ID="your-access-key"
# export AWS_SECRET_ACCESS_KEY="your-secret-key"
# export AWS_SESSION_TOKEN="your-session-token" # Optional for temporary credentials
# - Use IAM role when running on AWS infrastructure
graphiti:
group_id: ${GRAPHITI_GROUP_ID:main}
episode_id_prefix: ${EPISODE_ID_PREFIX:}
user_id: ${USER_ID:mcp_user}
entity_types:
- name: "Preference"
description: "User preferences, choices, opinions, or selections (PRIORITIZE over most other types except User/Assistant)"
- name: "Requirement"
description: "Specific needs, features, or functionality that must be fulfilled"
- name: "Procedure"
description: "Standard operating procedures and sequential instructions"
- name: "Location"
description: "Physical or virtual places where activities occur"
- name: "Event"
description: "Time-bound activities, occurrences, or experiences"
- name: "Organization"
description: "Companies, institutions, groups, or formal entities"
- name: "Document"
description: "Information content in various forms (books, articles, reports, etc.)"
- name: "Topic"
description: "Subject of conversation, interest, or knowledge domain (use as last resort)"
- name: "Object"
description: "Physical items, tools, devices, or possessions (use as last resort)"