Fix Fedora issues with Claude and MCP

Fastest method is using uv and claude mcp add:

uv tool install linux-mcp-server
claude mcp add linux-mcp --scope user --transport stdio -- linux-mcp-server
  • linux-mcp is the server name used in Claude Code.
  • --scope user makes the server available globally for your user account.
  • --transport stdio Specifies that it’s a local standard input/output server.
  • -- separates Claude CLI flags from the command to run.
  • linux-mcp-server starts the server process.

Claude is capable of starting the server on demand, check that it’s enabled with /mcp:

Troubleshooting Wireless on the Anbernic RG35XX H: The Knulli Fix

Retro handhelds like the Anbernic RG35XX H are fantastic but if you’ve recently upgraded to a new version of the Knulli custom firmware and ran into Wi-Fi connectivity issues, so did I.

After some head-scratching, I remembered an experimental setting I enabled for Firefly:

  1. Navigate to System Settings.
  2. Go to Services.
  3. Find and turn OFF the setting for wireless_hybrid_fix.

Once disabled, the Wi-Fi connected straight away and has been stable since.

JSON

Following on from this post, I thought it might be good to think about JavaScript Object Notation (JSON).

Despite its name, JSON has evolved to be agnostic and is arguably the standard for exchanging information because its human readable and easy for computers to parse.

JSON is two things: a collection of key value pairs, and an ordered list of values. The former is easily represented with objects, dictionaries, etc. and he latter with arrays, lists, or sequences.

  • Values are string, number, object, array, true/false, or null surrounded by white-space.
  • Objects are unordered key-value pairs, represented by colon separated key-value pairs and wrapped in curly brackets.
  • Arrays are comma separated ordered collections wrapped in square brackets.
  • Comments, trailing commas, and single quoted strings are not supported.
{
    "name" : "Dougie",
    "languages" : [ "python", "java" ]
}

Python has a standard module, json, making it simple to convert Python and JSON data types. Serialisation is converting to JSON, but take care with de-serialisation as it is not quite the reverse. Not all Python data types can be converted to JSON values, so objects may not retain their original type.

This can introduce subtle problems when serialising and de-serialising:

  • JSON requires keys to be strings, so where another type is given during serialisation, it will be a string when de-serialised.
  • True serialises to true, and None serialises to null. The reverse is also true.
  • Tuple are serialised as arrays, there is no way to tell when de-serialising so you will get a list.

Serialising is done by dumping:

json.dumps(python_data)

Deserialising JSON is done by loading:

json.loads(json_data)

JSON is human readable but can be made easier to read by specifying indentation level:

json.dumps(sample_json, indent=2)