Commit graph

710 commits

Author SHA1 Message Date
Daniel Chalef
9561c12e59 conductor-checkpoint-msg_01Br69UnYf8QXvtAhJVTuDGD 2025-10-29 22:50:28 -07:00
Daniel Chalef
d940b6fb7d fix: Use timezone.utc instead of UTC for Python 3.10 compatibility
The UTC constant was added in Python 3.11. Changed to use
timezone.utc which is available in Python 3.10+.

Fixed ImportError: cannot import name 'UTC' from 'datetime'
2025-10-29 22:46:17 -07:00
Daniel Chalef
736e5e21a2 conductor-checkpoint-msg_01JvcW97a4s3icDWFkhF3kEJ 2025-10-29 22:45:20 -07:00
Daniel Chalef
12eb564eda fix: Resolve database connection and episode processing errors
Fixed two critical runtime errors:

1. Database connection check for KuzuDB
   - KuzuDB session.run() returns None, causing async iteration error
   - Added special handling for KuzuDB (in-memory, no query needed)
   - Other databases (Neo4j, FalkorDB) still perform connection test

2. Episode processing parameter error
   - Changed 'episode_type' parameter to 'source' to match Graphiti API
   - Added required 'reference_time' parameter with current timestamp
   - Added datetime imports (UTC, datetime)

Errors fixed:
- 'async for' requires an object with __aiter__ method, got NoneType
- Graphiti.add_episode() got an unexpected keyword argument 'episode_type'
2025-10-29 22:43:09 -07:00
Daniel Chalef
aa16d4a9ac conductor-checkpoint-msg_016AXAH98nYKTj5WCueBubmA 2025-10-29 22:40:40 -07:00
Daniel Chalef
bb7883a4ee feat: Update default embedding model to text-embedding-3-small
Replace outdated text-embedding-ada-002 with the newer, more efficient
text-embedding-3-small model as the default embedder. The new model
offers better performance and is more cost-effective.

Updated:
- config/config.yaml: Changed default model
- README.md: Updated documentation to reflect new default
2025-10-29 22:36:52 -07:00
Daniel Chalef
7e105825bd conductor-checkpoint-msg_01Jcb8sm9bpqB9Ksz1W6YrSz 2025-10-29 22:36:01 -07:00
Daniel Chalef
bb12a91ebd docs: Remove telemetry from features list
Telemetry is not a feature but a notice about data collection,
so it shouldn't be listed as a feature.

Addresses review comment on line 29
2025-10-29 22:34:51 -07:00
Daniel Chalef
bbf082512f conductor-checkpoint-msg_01DNn76rvpx7rmTBwsUQd1De 2025-10-29 22:34:20 -07:00
Daniel Chalef
6a3a1ba706 docs: Remove SSE transport reference from Claude Desktop section
Since the MCP server no longer supports SSE transport, removed the
mention of SSE from the mcp-remote description. The server only
uses HTTP transport.

Addresses review comment on line 514
2025-10-29 22:33:39 -07:00
Daniel Chalef
7074b107b8 conductor-checkpoint-msg_01QMeMEMe9rTVDgd8Ce5hmXp 2025-10-29 22:33:13 -07:00
Daniel Chalef
9193b52179 docs: Address README review comments
- Shorten Kuzu database description to be more concise
- Update Ollama model example to use 'gpt-oss:120b'
- Restore Azure OpenAI environment variables documentation
- Remove implementation details from Docker section (irrelevant to container users)
- Clarify mcp-remote supports both HTTP and SSE transports

Addresses review comments #1-7 on the PR
2025-10-29 22:22:51 -07:00
Daniel Chalef
ca61e11fc8 conductor-checkpoint-msg_018Z7AjbTkuDfhqdjB9iGbbD 2025-10-29 22:20:33 -07:00
Daniel Chalef
12316066ca docs: Update README with comprehensive features and database options
- Add comprehensive features list including all supported databases, LLM providers, and transports
- Document Kuzu as the default database with explanation of its benefits and archived status
- Add detailed instructions for running with different databases (Kuzu, Neo4j, FalkorDB)
- Update transport references from SSE to HTTP (default transport)
- Add database-specific Docker Compose instructions
- Update MCP client configurations to use /mcp/ endpoint
- Clarify prerequisites to reflect optional nature of external databases
- Add detailed database configuration examples for all supported backends
2025-10-29 22:09:39 -07:00
Daniel Chalef
d76b70de39 conductor-checkpoint-msg_01VsJQ3MgDxPwyb4ynvswZfb 2025-10-29 22:05:17 -07:00
Daniel Chalef
a85b1943ad fix: Move README back to mcp_server root folder
The main README for the MCP server should be in the root of the mcp_server folder for better discoverability
2025-10-29 21:22:56 -07:00
Daniel Chalef
fc639ae605 conductor-checkpoint-msg_01GuBj69k2CsqgojBsGJ2zFT 2025-10-29 21:22:01 -07:00
Daniel Chalef
4fe92a2b5b fix: Use contextlib.suppress instead of try-except-pass (SIM105)
- Replace try-except-pass with contextlib.suppress in test_async_operations.py
- Replace try-except-pass with contextlib.suppress in test_fixtures.py
- Fixes ruff SIM105 linting errors
2025-10-29 18:46:50 -07:00
Daniel Chalef
5b40df724e conductor-checkpoint-msg_01RedNheKT4yWyXcM83o3Nmv 2025-10-29 18:44:16 -07:00
Daniel Chalef
669aaae785 fix: Fix all linting errors in test suite
- Replace bare except with except Exception
- Remove unused imports and variables
- Fix type hints to use modern syntax
- Apply ruff formatting for line length
- Ensure all tests pass linting checks
2025-10-29 18:41:18 -07:00
Daniel Chalef
6d1c8ad17a conductor-checkpoint-msg_015EewQhKbqAGSQkasWtRQjp 2025-10-29 18:33:04 -07:00
Daniel Chalef
89e6e7c354 Merge branch 'main' into feat/mcp-server-v1-final
Resolved conflicts:
- Removed old mcp_server/graphiti_mcp_server.py (moved to src/)
- Kept our uv.lock with MCP dependencies
2025-10-29 18:31:42 -07:00
Daniel Chalef
dfaadc8fec conductor-checkpoint-msg_01NfviLNeAhFDA1G5841YKCS 2025-10-29 18:29:56 -07:00
Preston Rasmussen
c29f4da21e
update mmr to use bulk load overrides (#1029)
* update mmr to use bulk load overrides

* update returns

* update
2025-10-29 09:51:58 -04:00
Daniel Chalef
ae227ce927 @didier-durand has signed the CLA in getzep/graphiti#1028 2025-10-29 02:32:04 -07:00
Daniel Chalef
dfb99e742e fix: Improve test runner to load API keys from .env file
- Add dotenv loading support in test runner
- Fix duplicate os import issue
- Improve prerequisite checking with helpful hints
- Update error messages to guide users

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 12:20:14 -07:00
Daniel Chalef
b19b3c4b11 conductor-checkpoint-msg_01Q7VLFTJrtmpkaB7hfUzZLP 2025-10-27 12:15:35 -07:00
Daniel Chalef
56f6d09df0
Add MCP server release workflow (#1025)
* conductor-checkpoint-start

* conductor-checkpoint-msg_01B1n4yHQFoVrWWdKcqPQ4Qa

* conductor-checkpoint-msg_01LS1v8ok5qtzAofv1TFRDHt

* conductor-checkpoint-msg_01H5pxrRKDpizF4wv1irnvRz

* conductor-checkpoint-msg_01EFo2gQBKSFkGcJoJ4bUWNS

* conductor-checkpoint-msg_01QW92pnqMv17sfV4CxFKn7Y

* conductor-checkpoint-msg_01VqPRMaBRGpBf9E8sdpPeFa

* Fix critical issues in MCP server release workflow

- Fix Docker tag format: use version only (0.4.0) instead of mcp-v0.4.0
- Add Python 3.11 setup for tomllib compatibility
- Add workflow_dispatch trigger for testing without creating tags
- Add conditional push logic for manual testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove workflow_dispatch trigger from MCP server release

Simplify workflow to only trigger on mcp-v*.*.* tags.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* conductor-checkpoint-msg_019AX8ymwf9eec2KF979CJCM

* conductor-checkpoint-msg_01LMofTLUNkicSq5vpFmsd1C

* Add semantic version validation to MCP server release

Validate tag follows X.Y.Z format before processing.
Rejects malformed tags like mcp-v1.0 or mcp-v1.0.0.0.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* conductor-checkpoint-msg_01Ndj59qcprSNRfe3vuciwwA

* conductor-checkpoint-msg_01PmA8bfCLKv7yHiaBz2MypS

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-27 12:06:38 -07:00
Preston Rasmussen
71f1f66d11
Search client update (#1026)
* update bulk interfae handling

* bump version

* format
2025-10-26 22:07:36 -04:00
Daniel Chalef
968c36c2d1 conductor-checkpoint-msg_01TscHXmijzkqcTJX5sGTYP8 2025-10-26 18:14:13 -07:00
Daniel Chalef
fefcd1a2de conductor-checkpoint-msg_014BF6Kzdy7qXc5AgC7eeVa5 2025-10-26 18:03:30 -07:00
Daniel Chalef
2037df875d fix: Configure consistent logging format between uvicorn and MCP server
- Use simplified format matching uvicorn's default (LEVEL message)
- Remove timestamps from custom logger format
- Suppress verbose MCP and uvicorn access logs
- Improve readability of server startup output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 18:00:47 -07:00
Daniel Chalef
230b82a047 conductor-checkpoint-msg_01417YVh3s6afJadN5AM5Ahk 2025-10-26 17:59:47 -07:00
Daniel Chalef
7a65f6729a fix: Correct MCP HTTP endpoint path from / to /mcp/
- Remove incorrect /status endpoint reference
- Update logging to show correct MCP endpoint at /mcp/
- Align with FastMCP documentation standards

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:54:41 -07:00
Daniel Chalef
70c08e4c3e conductor-checkpoint-msg_01SNpbaZMdxWbefo2zsLprcW 2025-10-26 17:53:00 -07:00
Daniel Chalef
91d515871b feat: Add detailed server URL logging and improve access information
- Added comprehensive logging showing exact URLs to access the MCP server
- Display localhost instead of 0.0.0.0 for better usability
- Show MCP endpoint, transport type, and status endpoint information
- Added visual separators to make server info stand out in logs

This helps users understand exactly how to connect to the MCP server
and troubleshoot connection issues.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:48:56 -07:00
Daniel Chalef
a1aca3cc09 conductor-checkpoint-msg_01EaN8GZtehm8LV3a7CdWJ8u 2025-10-26 17:47:15 -07:00
Daniel Chalef
f3b793f244 fix: Update hardcoded default model to gpt-4.1 and fix config path
- Changed hardcoded default in schema.py from gpt-4o to gpt-4.1
- Fixed default config path to look in config/config.yaml relative to mcp_server directory
- This ensures the server uses gpt-4.1 as the default model everywhere

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:44:36 -07:00
Daniel Chalef
3c6bd3d9e0 conductor-checkpoint-msg_013HP1MYHKZ5wdTHHxrpBaT9 2025-10-26 17:42:39 -07:00
Daniel Chalef
bcf1ccd843 fix: Correct default OpenAI model to gpt-4.1
Changed the default LLM model from gpt-4o-mini to gpt-4.1 as requested.
This is the latest GPT-4 series model.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:40:12 -07:00
Daniel Chalef
d1036197f4 conductor-checkpoint-msg_01AJJ48RbkPaZ99G2GmE6HUi 2025-10-26 17:38:47 -07:00
Daniel Chalef
4788e80654 conductor-checkpoint-msg_01FETp6u9mWAMjJAeT6WFgAf 2025-10-26 17:38:12 -07:00
Daniel Chalef
38ea97e90c chore: Update default OpenAI model to gpt-4o-mini
Changed the default LLM model from gpt-4o to gpt-4o-mini across all
configuration files for better cost efficiency while maintaining quality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:36:09 -07:00
Daniel Chalef
39e3bc0098 conductor-checkpoint-msg_01FErZjFG5iWrvbdUD2acQwQ 2025-10-26 17:34:48 -07:00
Daniel Chalef
0f2b7e9caa chore: Update default transport from SSE to HTTP
- Changed default transport to 'http' as SSE is deprecated
- Updated all configuration files to use HTTP transport
- Updated Docker compose commands to use HTTP transport
- Updated comments to reflect HTTP transport usage

This change ensures the MCP server uses the recommended HTTP transport
instead of the deprecated SSE transport.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:33:54 -07:00
Daniel Chalef
67779c94bf conductor-checkpoint-msg_01PCGAWzQUbmh7hAKBvadbYN 2025-10-26 17:32:01 -07:00
Daniel Chalef
0f85119443 fix: Improve MCP server configuration and initialization
- Fix API key detection: Remove hardcoded OpenAI checks, let factories handle provider-specific validation
- Fix .env file loading: Search for .env in mcp_server directory first
- Change default transport to SSE for broader compatibility (was stdio)
- Add proper error handling with warnings for failed client initialization
- Model already defaults to gpt-4o as requested

These changes ensure the MCP server properly loads API keys from .env files
and creates the appropriate LLM/embedder clients based on configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 17:31:32 -07:00
Daniel Chalef
fa2b5696bc conductor-checkpoint-msg_01PmXwij9S976CQk798DJ4PH 2025-10-26 17:29:06 -07:00
Daniel Chalef
21530c6408 feat: MCP Server v1.0.0rc0 - Complete refactoring with modular architecture
This is a major refactoring of the MCP Server to support multiple providers
through a YAML-based configuration system with factory pattern implementation.

## Key Changes

### Architecture Improvements
- Modular configuration system with YAML-based settings
- Factory pattern for LLM, Embedder, and Database providers
- Support for multiple database backends (Neo4j, FalkorDB, KuzuDB)
- Clean separation of concerns with dedicated service modules

### Provider Support
- **LLM**: OpenAI, Anthropic, Gemini, Groq
- **Embedders**: OpenAI, Voyage, Gemini, Anthropic, Sentence Transformers
- **Databases**: Neo4j, FalkorDB, KuzuDB (new default)
- Azure OpenAI support with AD authentication

### Configuration
- YAML configuration with environment variable expansion
- CLI argument overrides for runtime configuration
- Multiple pre-configured Docker Compose setups
- Proper boolean handling in environment variables

### Testing & CI
- Comprehensive test suite with unit and integration tests
- GitHub Actions workflows for linting and testing
- Multi-database testing support

### Docker Support
- Updated Docker images with multi-stage builds
- Database-specific docker-compose configurations
- Persistent volume support for all databases

### Bug Fixes
- Fixed KuzuDB connectivity checks
- Corrected Docker command paths
- Improved error handling and logging
- Fixed boolean environment variable expansion

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-26 17:23:57 -07:00
Daniel Chalef
6338378614 @dontang97 has signed the CLA in getzep/graphiti#1020 2025-10-22 02:52:17 -07:00