Skip to main content
Glama

mcp-server-tree-sitter

by wrale
MIT License
175
  • Apple
  • Linux
test_makefile_targets.py3.26 kB
"""Tests for Makefile targets to ensure they execute correctly.""" import os import re import subprocess from pathlib import Path def test_makefile_target_syntax(): """Test that critical Makefile targets are correctly formed.""" # Get the Makefile content makefile_path = Path(__file__).parent.parent / "Makefile" with open(makefile_path, "r") as f: makefile_content = f.read() # Test mcp targets - they should use uv run mcp directly mcp_target_pattern = r"mcp-(run|dev|install):\n\t\$\(UV\) run mcp" mcp_targets = re.findall(mcp_target_pattern, makefile_content) # We should find at least 3 matches (run, dev, install) assert len(mcp_targets) >= 3, "Missing proper mcp invocation in Makefile targets" # Check for correct server module reference assert "$(PACKAGE).server" in makefile_content, "Server module reference is incorrect" # Custom test for mcp-run mcp_run_pattern = r"mcp-run:.*\n\t\$\(UV\) run mcp run \$\(PACKAGE\)\.server" assert re.search(mcp_run_pattern, makefile_content), "mcp-run target is incorrectly formed" # Test that help is the default target assert ".PHONY: all help" in makefile_content, "help is not properly declared as .PHONY" assert "help: show-help" in makefile_content, "help is not properly set as default target" def test_makefile_target_execution(): """Test that Makefile targets execute correctly when invoked with --help.""" # We'll only try the --help flag since we don't want to actually start the server # Skip if not in a development environment if not os.path.exists("Makefile"): print("Skipping test_makefile_target_execution: Makefile not found") return # Skip this test in CI environment if os.environ.get("CI") == "true" or os.environ.get("GITHUB_ACTIONS") == "true": print("Skipping test_makefile_target_execution in CI environment") return # Test mcp-run with --help try: # Use the make target with --help appended to see if it resolves correctly # We capture stderr because sometimes help messages go there result = subprocess.run( ["make", "mcp-run", "ARGS=--help"], capture_output=True, text=True, timeout=5, # Don't let this run too long check=False, env={**os.environ, "MAKEFLAGS": ""}, # Clear any inherited make flags ) # The run shouldn't fail catastrophically assert "File not found" not in result.stderr, "mcp-run can't find the module" # We expect to see help text in the output (stdout or stderr) output = result.stdout + result.stderr has_usage = "usage:" in output.lower() or "mcp run" in output # We don't fail the test if the help check fails - this is more of a warning # since the environment might not be set up to run make directly if not has_usage: print("WARNING: Couldn't verify mcp-run --help output; environment may not be properly configured") except (subprocess.SubprocessError, FileNotFoundError) as e: # Don't fail the test if we can't run make print(f"WARNING: Couldn't execute make command; skipping execution check: {e}")

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/wrale/mcp-server-tree-sitter'

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