wcgw

rusiaaman/wcgw

4.5

wcgw is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.

If you are the rightful owner of wcgw and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

wcgw is an MCP server with tightly integrated shell and code editing tools, designed to empower chat applications like Claude to code, build, and run on your local machine.

Try wcgw with chat:

MCPHub score:4.54

Has a README

Github repo has a README.md.

Has a License

Github repo has license info.

Server can be inspected

View server inspector

Server schema can be extracted

Can get at lease one tool info from the README or server.

Online hosted on MCPHub

Can be automatically deployed by MCPHub.

Has social accounts

Do not have any social accounts.

Claimed by the author or certified by MCPHub

If you are the author, claim authorship

AI Evaluation Report
Total Score: 9/10

The agent demonstrates strong capabilities in executing tasks related to file management, code modification, and project documentation within a shell environment. It effectively added and verified a new function, read and displayed file contents, fixed a bug in the code, and managed dependencies and test execution. The agent also successfully saved the project state, although there were minor issues with encoding and code logic that could be improved. Overall, the agent shows proficiency in handling complex operations and troubleshooting, with room for improvement in handling encoding and logical errors.

  • Test case 1
    Score: 9/10
    Let's add a new function to `/app/test_project/src/utils.py`. Please add a function `multiply(a, b)` that returns the product of `a` and `b`.And verify the function

    The function multiply(a, b) has been successfully added to /app/test_project/src/utils.py.

    Verification

    I verified the function by running a test with inputs 3 and 4, and it returned the expected output:

    12
    

    This confirms that the function is working correctly. If you need any further modifications or additional features, just let me know!

  • Test case 2
    Score: 8/10
    To understand the project's data model, can you show me the configuration from `/app/test_project/config/settings.json` and just the header row from `/app/test_project/data/sample_data.csv`?

    Here are the details from the specified files:

    Configuration from settings.json

    {
        "app_name": "wcgw_test_project",
        "version": "1.0.0",
        "debug": true,
        "database": {
            "host": "localhost",
            "port": 5432,
            "name": "test_db"
        }
    }
    

    Header Row from sample_data.csv

    name,age,city
    

    If you need further information or additional details from these files, feel free to ask!

  • Test case 3
    Score: 10/10
    There's a bug in `/app/test_project/src/buggy_code.py`. The `divide_numbers` function crashes on division by zero. Can you read the file and add a check to raise a `ValueError` if the second argument is zero and show the fixed code snippet?

    I have added a check in the divide_numbers function to raise a ValueError if the second argument is zero. Here is the updated code snippet:

    def divide_numbers(a, b):
        if b == 0:
            raise ValueError("The second argument cannot be zero.")
        return a / b
    

    This change ensures that the function will no longer crash on division by zero, providing a clearer error message instead. If you need further modifications or assistance, feel free to ask!

  • Test case 4
    Score: 10/10
    I have a project at `/app/test_project` directory. Please go to the project and use the Makefile to install the required dependencies and then run the test suite.

    It seems that there are issues with installing the required dependencies using the Makefile. The command is failing during the installation of Python packages due to an error related to the pkgutil module.

    Here are the steps I will take to resolve this:

    1. Check the Python version: Let’s verify the version of Python currently being used to see if there are compatibility issues with the packages.
    2. Manually install the dependencies: I will try to install the dependencies listed in the requirements.txt file one by one to identify the problematic package.

    Let's start by checking the Python version. I'll proceed with that now.

    Here are the results from attempting to install the dependencies:

    1. pytest==7.4.0: Successfully installed.
    2. requests==2.31.0: Successfully installed.
    3. numpy==1.24.3: Installation failed due to an error with the pkgutil module.

    The error encountered with NumPy suggests that there may be compatibility issues with the version of Python being used or the underlying libraries.

    Next Steps

    1. Try installing NumPy using a wheel: This can often resolve issues because it avoids the need to build from source.
    2. If that fails, consider using a previous version of NumPy that is known to be compatible with Python 3.12.

    Let's first attempt to install NumPy using the wheel. I'll proceed with that now.

    The installation of NumPy was successful, but when attempting to run the test suite, an error occurred:

    • Error: ModuleNotFoundError: No module named 'main'

    This indicates that the test file tests/test_main.py is trying to import from the main module, but it cannot find it. This is likely related to the Python path configuration.

    Next Steps

    1. Check the structure of the tests/test_main.py file: I'll read the contents of this file to understand the imports and see if there's a misconfiguration.
    2. Adjust the Python path: If necessary, I can modify the command to include the source directory in the Python path.

    Let's start by reading the tests/test_main.py file. I'll proceed with that now. The contents of tests/test_main.py are as follows:

    import sys
    sys.path.append("../src")
    from main import add_numbers, hello_world
    
    def test_add_numbers():
        assert add_numbers(2, 3) == 5
        assert add_numbers(-1, 1) == 0
        assert add_numbers(0, 0) == 0
    
    def test_hello_world():
        # This would need proper testing framework
        hello_world()  # Just call it for now
    
    if __name__ == "__main__":
        test_add_numbers()
        test_hello_world()
        print("All tests passed!")
    

    Analysis

    • The line sys.path.append("../src") is correctly adding the src directory to the Python path.
    • However, the error indicates that the main module is still not found, which might be due to the way pytest discovers tests.

    Next Steps

    1. Run pytest with the PYTHONPATH environment variable: This will ensure that the src directory is included in the Python path when pytest runs.
    2. Execute the tests again.

    I'll proceed to run the tests with the adjusted PYTHONPATH. The test suite has successfully executed, and all tests have passed! Here are the results:

    • Test Session Start: pytest was able to find and run the tests.
    • Collected Tests: 2 tests were collected.
    • Results: Both tests passed successfully.

    Summary of Actions Taken

    1. Installed make to use the Makefile.
    2. Installed project dependencies, resolving issues with NumPy.
    3. Adjusted the Python path and successfully ran the test suite.

    If you need any further assistance or have other tasks to perform, feel free to let me know!

  • Test case 5
    Score: 8/10
    We've made several changes. Please save the current state of the `/app/test_project`. Use the ID `python-bug-fix-1` and include all Python source files, test files, and the `Makefile` in the context.You can print some snippets of the context file.

    The current state of the /app/test_project has been successfully saved under the ID python-bug-fix-1. This context includes all relevant Python source files, test files, and the Makefile. Below are some snippets from the saved context file:

    Snippets from Saved Context

    buggy_code.py
    def divide_numbers(a, b):
        if b == 0:
            raise ValueError("The second argument cannot be zero.")
        return a / b
    
    def process_list(items):
        # Bug: 没有检查空列表
        return items[0] * 2
    
    # Bug: 无限循环
    def infinite_loop():
        while True:
            print("This will run forever!")
            break  # 该行永远不会执行到
    
    main.py
    def hello_world():
        """Print hello world message"""
        print("Hello, World!")
    
    if __name__ == "__main__":
        hello_world()
    
    test_main.py
    import sys
    sys.path.append("../src")
    from main import add_numbers, hello_world
    
    def test_add_numbers():
        assert add_numbers(2, 3) == 5
    
    Makefile
    .PHONY: test install clean run
    
    install:
    	pip install -r requirements.txt
    
    test:
    	python -m pytest tests/
    
    run:
    	python src/main.py
    
    clean:
    	find . -type f -name "*.pyc" -delete
    

    The context has been saved successfully, and you can reference it or retrieve it as needed. If you have any other requests or need further changes, feel free to ask!