Skip to main content
Glama

mcp-server-code-assist

import os from pathlib import Path import pytest from mcp_server_code_assist.tools.file_tools import FileTools TEST_DIR = Path(__file__).parent / "test_data" @pytest.fixture def file_tools(): TEST_DIR.mkdir(exist_ok=True) tools = FileTools(allowed_paths=[str(TEST_DIR)]) yield tools for item in TEST_DIR.glob("*"): if item.is_file(): item.unlink() elif item.is_dir(): import shutil shutil.rmtree(item) TEST_DIR.rmdir() @pytest.mark.asyncio async def test_validate_path(file_tools): valid_path = TEST_DIR / "test.txt" validated = await file_tools.validate_path(str(valid_path)) assert os.path.normpath(validated) == os.path.normpath(str(valid_path)) with pytest.raises(ValueError): await file_tools.validate_path("/invalid/path/outside") @pytest.mark.asyncio async def test_write_file(file_tools): test_file = TEST_DIR / "test.txt" content = "test content" await file_tools.write_file(str(test_file), content) assert test_file.exists() assert test_file.read_text() == content @pytest.mark.asyncio async def test_read_file(file_tools): test_file = TEST_DIR / "test.txt" content = "test content" test_file.write_text(content) assert await file_tools.read_file(str(test_file)) == content @pytest.mark.asyncio async def test_create_delete_file(file_tools): test_file = TEST_DIR / "new_file.txt" content = "new content" # Test create await file_tools.create_file(str(test_file), content) assert test_file.exists() assert test_file.read_text() == content # Test delete result = await file_tools.delete_file(str(test_file)) assert "Moved file to trash" in result assert not test_file.exists() # Verify file is in trash trash_dir = TEST_DIR / ".mcp_server_code_assist_trash" assert trash_dir.exists() trash_files = list(trash_dir.glob("new_file.txt_*")) assert len(trash_files) == 1 assert trash_files[0].read_text() == content @pytest.mark.asyncio async def test_modify_file(file_tools): test_file = TEST_DIR / "modify.txt" content = "Hello world!" await file_tools.write_file(str(test_file), content) replacements = {"world": "Python"} diff = await file_tools.modify_file(str(test_file), replacements) assert "Hello Python!" == await file_tools.read_file(str(test_file)) assert "-Hello world!" in diff assert "+Hello Python!" in diff @pytest.mark.asyncio async def test_rewrite_file(file_tools): test_file = TEST_DIR / "rewrite.txt" original = "Original content" new_content = "New content" await file_tools.write_file(str(test_file), original) diff = await file_tools.rewrite_file(str(test_file), new_content) assert new_content == await file_tools.read_file(str(test_file)) assert "-Original content" in diff assert "+New content" in diff @pytest.mark.asyncio async def test_file_tree(file_tools): # Create test structure (TEST_DIR / "dir1").mkdir() await file_tools.write_file(str(TEST_DIR / "dir1/file1.txt"), "content1") await file_tools.write_file(str(TEST_DIR / "dir1/file2.txt"), "content2") (TEST_DIR / "dir1/subdir").mkdir() await file_tools.write_file(str(TEST_DIR / "dir1/subdir/file3.txt"), "content3") tree = await file_tools.file_tree(str(TEST_DIR)) assert "dir1" in tree assert "file1.txt" in tree assert "file2.txt" in tree assert "subdir" in tree assert "file3.txt" in tree

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhishekbhakat/mcp_server_code_assist'

If you have feedback or need assistance with the MCP directory API, please join our Discord server