# Project configuration

{% hint style="warning" %}
Before configuring your project, check that [your project is compatible with our tools](/documentation/ressources/compatibility-guide.md).
{% endhint %}

## Definition

Using WedoLow MCP Server requires a configuration for your project, so the tool knows:

* How to build your project
* How to test your project (optional)
* How to bench your project (optional)
* What is your target platform
* What is the top function of your project for the optimization
* What optimization techniques you wish to enable/disable (avanced usage)

This configuration should be written in file `wedolow_mcp_project_config.json` at the project root.

Here is a basic example:

{% code title="wedolow\_mcp\_project\_config.json" %}

```json
{
    "build_cmd": {
        "cmd": [
            "make"
        ],
        "run_dir": null
    },
    "clean_cmd": {
        "cmd": [
            "make",
            "clean"
        ],
        "run_dir": null
    },
    "test_cmd": {
        "cmd": [
            "make",
            "test"
        ],
        "run_dir": null
    },
    "benchmark_cmd": {
        "cmd": [
            "make",
            "bench"
        ],
        "run_dir": null
    },
    "top_function": {
        "name": "FFT",
        "file": "src/fft.cpp"
    },
    "target_platform": "native"
}
```

{% endcode %}

You may create this file manually, or rely on section [Generate your configuration](#generate-your-configuration) so your AI agent does it itself.

## Configure using VSCode extension

With VSCode extension, run command `WedoLow: Setup project`.

<figure><img src="/files/8dOx9bj8TjHFkp8ibWj7" alt=""><figcaption></figcaption></figure>

Then, use the configuration window to generate your configuration file.

<figure><img src="/files/OOvU0moSeQpzdPJQ9ny8" alt=""><figcaption></figcaption></figure>

## Configure manually

### Supported target platforms

To know the list of supported target platforms, you may simply ask your AI agent:

> Show me the list of target platforms supported by WedoLow MCP Server.

The AI agent will make the right call to give you the answer.

<figure><img src="/files/avNU2eUjxTG38sfGa7Sc" alt=""><figcaption><p>Asking Gemini CLI the list of supported target platforms</p></figcaption></figure>

{% hint style="info" %}
If your AI agent supports MCP resources, you may also find this information in the list of resources.
{% endhint %}

### Generate your configuration

The simplest way to configure your project is to ask help to your AI agent:

> Generate wedolow\_mcp\_project\_config.json config file for WedoLow MCP server using the following informations. My project compiles for the native target platform. It is built with command "make", cleaned with command "make clean" and tested with command "make test", benched with command "make bench". Using "make bench" command. The target platform is the native target. My top function is FFT function in src/fft.cpp file.

You know have a correct configuration file at the root of your project.

<figure><img src="/files/rVfqUgAf5fAbVwptbmJ1" alt=""><figcaption><p>Asking Gemini CLI to generate a configuration file for your project</p></figcaption></figure>

### Advanced usage: deactivate optimizations

If you wish to control which optimizations you want your AI agent to search for and apply, you may blacklist specific optimization techniques. To do that, a new section must be added in the configuration file.

```
{
    "optim_techniques": {
      "<optim-technique-name-1>": true,
      "<optim-technique-name-2>": false,
      "<optim-technique-name-3>": false
    }
}
```

If not defined here, optimization techniques default to **true** (activated)**.**

If you want to control this yourself, ask your AI agent to add this section:

> In my wedolow\_mcp\_project\_config.json, add section "optim\_techniques" and list all the available optimization techniques there. Default them all to true.

<figure><img src="/files/hb5xYuffGrBme17V8jWR" alt=""><figcaption><p>Asking Gemini CLI to add the explicit list of available optimization techniques</p></figcaption></figure>

Your project is fully configured. You may now [run the optimization](/documentation/wedolow-mcp-server/usage/optimize-your-project.md).

{% hint style="info" %}
When optimizing C++, the top function name must carry its namespace and classname, e.g, `mynamespace::MyClass::funcName`
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wedolow.com/documentation/wedolow-mcp-server/usage/project-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
