Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ pytest -n auto tests/unit/

```bash
# Test a specific file with coverage
. /home/cmihai/.venv/mcpgateway/bin/activate
. .venv/bin/activate
pytest --cov-report=annotate tests/unit/mcpgateway/test_translate.py

# Test with detailed output
Expand Down
12 changes: 6 additions & 6 deletions crates/mcp_runtime/FOLLOWUPS.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ Status:

Observed behavior:
- The compose testing stack enables the plugin framework with `PLUGINS_ENABLED=true`.
- However, the default [plugins/config.yaml](/home/cmihai/agents2/pr/mcp-context-forge/plugins/config.yaml) keeps built-in plugins such as `PIIFilterPlugin` in `mode: "disabled"`, so the current Rust MCP end-to-end battery does not exercise live plugin enforcement or transformation behavior.
- However, the default [plugins/config.yaml](../../plugins/config.yaml) keeps built-in plugins such as `PIIFilterPlugin` in `mode: "disabled"`, so the current Rust MCP end-to-end battery does not exercise live plugin enforcement or transformation behavior.
- Manual spot checks with temporary plugin enablement showed:
- `resource_post_fetch` parity for `resources/read` using `LicenseHeaderInjector`
- `prompt_pre_fetch` is reached on Rust full mode using `DenyListPlugin`
Expand All @@ -268,7 +268,7 @@ Observed behavior:
- `tool_pre_invoke` / `tool_post_invoke`
- `prompt_pre_fetch` / `prompt_post_fetch`
- `resource_pre_fetch` / `resource_post_fetch`
- In Rust full mode, the direct fast paths in [lib.rs](/home/cmihai/agents2/pr/mcp-context-forge/crates/mcp_runtime/src/lib.rs) serve several of those methods directly:
- In Rust full mode, the direct fast paths in [lib.rs](src/lib.rs) serve several of those methods directly:
- `direct_server_tools_list(...)`
- `direct_server_resources_list(...)`
- `direct_server_resource_templates_list(...)`
Expand All @@ -289,10 +289,10 @@ Why this matters:
`prompts/get` happy path.

Likely area:
- [tool_service.py](/home/cmihai/agents2/pr/mcp-context-forge/mcpgateway/services/tool_service.py)
- [prompt_service.py](/home/cmihai/agents2/pr/mcp-context-forge/mcpgateway/services/prompt_service.py)
- [resource_service.py](/home/cmihai/agents2/pr/mcp-context-forge/mcpgateway/services/resource_service.py)
- [lib.rs](/home/cmihai/agents2/pr/mcp-context-forge/crates/mcp_runtime/src/lib.rs)
- [tool_service.py](../../mcpgateway/services/tool_service.py)
- [prompt_service.py](../../mcpgateway/services/prompt_service.py)
- [resource_service.py](../../mcpgateway/services/resource_service.py)
- [lib.rs](src/lib.rs)

Recommended next step:
- Keep `make test-mcp-plugin-parity` green in both Python mode and Rust full mode using `tests/e2e/plugin_parity_config.yaml`.
Expand Down
10 changes: 5 additions & 5 deletions crates/mcp_runtime/TESTING-DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ This design covers:
- safe fallback behavior in `RUST_MCP_MODE=shadow`

It assumes the compose-backed environment from
[docker-compose.yml](/home/cmihai/agents2/pr/mcp-context-forge/docker-compose.yml),
[docker-compose.yml](../../docker-compose.yml),
which uses PostgreSQL and Redis.

## Why this matters
Expand Down Expand Up @@ -107,10 +107,10 @@ The following invariants should stay explicit and testable:

Useful existing coverage already lives in:

- [tests/e2e/test_mcp_rbac_transport.py](/home/cmihai/agents2/pr/mcp-context-forge/tests/e2e/test_mcp_rbac_transport.py)
- [tests/integration/test_streamable_http_redis.py](/home/cmihai/agents2/pr/mcp-context-forge/tests/integration/test_streamable_http_redis.py)
- [tests/e2e/test_session_pool_e2e.py](/home/cmihai/agents2/pr/mcp-context-forge/tests/e2e/test_session_pool_e2e.py)
- [tests/loadtest/locustfile_mcp_protocol.py](/home/cmihai/agents2/pr/mcp-context-forge/tests/loadtest/locustfile_mcp_protocol.py)
- [tests/e2e/test_mcp_rbac_transport.py](../../tests/e2e/test_mcp_rbac_transport.py)
- [tests/integration/test_streamable_http_redis.py](../../tests/integration/test_streamable_http_redis.py)
- [tests/e2e/test_session_pool_e2e.py](../../tests/e2e/test_session_pool_e2e.py)
- [tests/loadtest/locustfile_mcp_protocol.py](../../tests/loadtest/locustfile_mcp_protocol.py)

These are useful, but they are not enough on their own for Rust session-auth
reuse.
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/manage/observability/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ Use the trace generator helper to verify your observability backend is working:

```bash
# Activate virtual environment if needed
. /home/cmihai/.venv/mcpgateway/bin/activate
. .venv/bin/activate

# Run the trace generator
python tests/integration/helpers/trace_generator.py
Expand Down
3 changes: 2 additions & 1 deletion mcp-servers/python/mcp-rss-search/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
.PHONY: help install dev-install format lint test dev serve-http serve-sse test-http mcp-info clean

PYTHON ?= python3
VENV ?= /home/cmihai/.venv/mcpgateway
MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
VENV ?= $(abspath $(MAKEFILE_DIR)/../../../.venv)
HTTP_PORT ?= 9100
HTTP_HOST ?= 0.0.0.0

Expand Down
2 changes: 1 addition & 1 deletion mcp-servers/python/mcp-rss-search/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,7 @@ make test lint format
**Solution**: Make sure the virtual environment is activated and the package is installed:

```bash
. /home/cmihai/.venv/mcpgateway/bin/activate
. .venv/bin/activate
cd mcp-servers/python/mcp-rss-search
pip install -e .
```
Expand Down
8 changes: 7 additions & 1 deletion mcp-servers/python/mcp-rss-search/test_live.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@ echo "πŸš€ Starting MCP RSS Search Server..."
echo ""

# Activate virtual environment and start server in background
. /home/cmihai/.venv/mcpgateway/bin/activate
if [ -n "${VIRTUAL_ENV:-}" ] && [ -f "$VIRTUAL_ENV/bin/activate" ]; then
# shellcheck disable=SC1090
. "$VIRTUAL_ENV/bin/activate"
elif [ -f "../../../.venv/bin/activate" ]; then
# shellcheck disable=SC1091
. "../../../.venv/bin/activate"
fi
python3 -m mcp_rss_search.server_fastmcp --transport http --host 127.0.0.1 --port 9100 > /tmp/rss_server.log 2>&1 &
SERVER_PID=$!

Expand Down
2 changes: 1 addition & 1 deletion mcp-servers/python/output_schema_test_server/TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This document provides step-by-step instructions for testing the `outputSchema`

2. **Start ContextForge** (in separate terminal):
```bash
cd /home/cmihai/github/mcp-context-forge
cd /path/to/mcp-context-forge
make dev
```

Expand Down
10 changes: 8 additions & 2 deletions tests/performance/utils/setup-auth.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,15 @@ fi
cd "$PROJECT_ROOT" || exit 1

# Activate virtual environment if available
if [ -f "/home/cmihai/.venv/mcpgateway/bin/activate" ]; then
if [ -n "${VIRTUAL_ENV:-}" ] && [ -f "$VIRTUAL_ENV/bin/activate" ]; then
# shellcheck disable=SC1090
source "$VIRTUAL_ENV/bin/activate"
elif [ -f "$PROJECT_ROOT/.venv/bin/activate" ]; then
# shellcheck disable=SC1091
source /home/cmihai/.venv/mcpgateway/bin/activate
source "$PROJECT_ROOT/.venv/bin/activate"
elif [ -f "$HOME/.venv/mcpgateway/bin/activate" ]; then
# shellcheck disable=SC1091
source "$HOME/.venv/mcpgateway/bin/activate"
fi

# Generate token
Expand Down
25 changes: 25 additions & 0 deletions tests/unit/test_no_machine_specific_paths.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from pathlib import Path


def test_repository_does_not_include_machine_specific_home_paths() -> None:
repo_root = Path(__file__).resolve().parents[2]
machine_specific_home = "/home/" + "cmihai"
offenders: list[str] = []

for path in repo_root.rglob("*"):
if not path.is_file():
continue
if ".git" in path.parts:
continue
if path.suffix.lower() in {".png", ".jpg", ".jpeg", ".gif", ".ico", ".pdf", ".pyc"}:
continue

try:
content = path.read_text(encoding="utf-8")
except (OSError, UnicodeDecodeError):
continue

if machine_specific_home in content:
offenders.append(str(path.relative_to(repo_root)))

assert offenders == []
Loading