WordPress MCP Setup for Claude Code

The WordPress MCP Adapter plugin exposes a WordPress site as an MCP server. Combined with Automattic’s @automattic/mcp-wordpress-remote package, Claude Code can create and edit posts, manage pages, and interact with WordPress directly from a session.

Architecture

Claude Code
  └── stdio
      └── npx @automattic/mcp-wordpress-remote
              └── HTTPS (Application Password auth)
                      └── WordPress REST API (/wp-json/mcp/...)
                              └── MCP Adapter plugin
                                      └── WordPress Abilities API

Requirements

  • WordPress 6.9+
  • Node.js (installed via nvm)
  • MCP Adapter plugin activated on the WordPress site

Continue reading WordPress MCP Setup for Claude Code

Setting Up Mnemosyne Memory for Claude Code

Mnemosyne is a local-first AI memory system that integrates with Claude Code via MCP, giving Claude persistent memory across sessions.

Why MCP Instead of CLI

The CLI (mnemosyne store, mnemosyne recall) is a manual tool — you run it yourself and paste results back. The MCP integration makes Mnemosyne a first-class tool Claude can call directly, just like any other tool in a session.

Concretely, with MCP:

  • Claude automatically stores and retrieves memories during a conversation without any manual intervention
  • Memory reads and writes happen inline, so context is enriched transparently
  • No copy-pasting: Claude calls mnemosyne_remember or mnemosyne_recall the same way it calls any other tool

The CLI remains useful for inspection (mnemosyne stats), backup (mnemosyne export), and manual management — but it is not a substitute for the MCP integration when Claude is the one that needs to remember things.

Continue reading Setting Up Mnemosyne Memory for Claude Code

Connecting WordPress MCP via Tailscale

Most guides for connecting AI assistants to a self-hosted WordPress site via MCP suggest using Cloudflare Tunnel or ngrok to expose the site publicly. This works, but it also reintroduces infrastructure layers that can interfere with MCP: WAFs, bot-fight rules, page caches, and host-level rewrites that intercept REST API requests before WordPress ever handles them.

A cleaner alternative, if your machines are already on Tailscale: skip the public internet entirely.

Continue reading Connecting WordPress MCP via Tailscale

When Security Becomes Friction for Meralco Online

Meralco is a good example of a company overdoing online security in places where the actual risk is low.

Meralco is a utility company. It is not a bank, an e-wallet provider, or a financial institution holding customer funds. The information it needs to protect—customer name, service address, and billing amount—is important, but it does not carry the same risk profile as banking credentials or stored monetary value. The security approach should reflect that difference.

Continue reading When Security Becomes Friction for Meralco Online

Navigating the Challenges of Mobile Payments: A Lesson from GCash Spam SMS

Paying bills has never been easier, thanks to the advent of mobile payment solutions like GCash and Maya. However, my recent experience with GCash highlighted a significant issue that needs addressing.

The Issue with Spam SMS

Recently, I was paying for my Globe Postpaid plan and decided to use GCash for the transaction. However, in the past few days, I’ve been inundated with spam marketing SMS from GCash. The frequency and irrelevance of these messages were frustrating, so I decided to block GCash in my Google Messages app.

The Unintended Consequence

When I attempted to pay my bill via GCash, I didn’t receive the OTP (One-Time Password) required to complete the transaction. It quickly dawned on me that GCash was blocked, preventing the OTP from coming through. I unblocked GCash temporarily, but the OTP still took too long to arrive. This delay was unacceptable, especially when trying to complete a time-sensitive transaction.
Continue reading Navigating the Challenges of Mobile Payments: A Lesson from GCash Spam SMS

Why You Should Avoid Installing Obsidian via Snap on Ubuntu

If you’re an Ubuntu user and have installed Obsidian, the popular note-taking app, using the Snap package, you might have encountered an unexpected inconvenience: when opening links from your notes, they launch in a separate browser profile labeled as ‘Profile 1’. This profile is distinct from your default browser profile, complete with its own set of cookies, bookmarks, and extensions.

This behavior can be frustrating, especially if you’re used to seamlessly integrating your browsing experience with your notes. Here’s why this happens and what you can do about it:

Understanding the Issue: Snap Package Peculiarities

Snap packages are known for their sandboxing approach, which aims to enhance security by isolating applications and their dependencies from the rest of the system. While this isolation can be beneficial for security reasons, it also means that applications installed via Snap may behave differently compared to their counterparts installed via other methods like Flatpak or .deb packages.

One notable difference is how Snap handles application interactions with the system, such as opening external links. In the case of Obsidian installed via Snap, opening links from within your notes triggers the opening of your default browser in a separate profile. This ‘Profile 1’ is independent of the profile you typically use for your browsing activities, resulting in a disjointed user experience. Continue reading Why You Should Avoid Installing Obsidian via Snap on Ubuntu

Understanding SharePoint Indexing: When Does SharePoint Automatically Index Columns?

SharePoint automatically indexes columns in several instances:

  1. Primary Key Columns: When you create a list, SharePoint automatically indexes the primary key column (ID field) for faster retrieval.

  2. Unique Columns: Columns marked as unique are automatically indexed to enforce uniqueness.

  3. Lookup Columns: Columns used as lookup columns in other lists are automatically indexed to optimize lookup queries.

  4. Managed Metadata Columns: SharePoint automatically indexes managed metadata columns to enhance performance when filtering or sorting by these columns.

  5. Indexed Columns in Views: Columns included in indexed views are automatically indexed to improve view performance.

  6. Indexed Columns in Large Lists: In large lists, SharePoint automatically indexes frequently used columns to improve performance.

  7. Date and Time Columns: Columns with date and time data types are automatically indexed to optimize date-based queries.

These automatic indexing features help improve performance and efficiency in SharePoint lists and libraries.

Encoding and Decoding Data: CSV vs. JSON

In general, CSV (Comma-Separated Values) is more efficient in encoding a table compared to JSON (JavaScript Object Notation). This is because CSV is a simpler and more lightweight format designed specifically for tabular data.

CSV files are easy to read and write, and they typically consume less storage space compared to JSON due to their minimalistic structure. On the other hand, JSON is designed to store and exchange structured data in a more verbose and human-readable format, which includes key-value pairs and nested structures.

If the primary goal is to store tabular data or exchange data in a format optimized for tables, CSV is usually the more efficient choice. However, JSON provides more flexibility and features for handling complex data structures beyond simple tables. Continue reading Encoding and Decoding Data: CSV vs. JSON

Why Dokuwiki is Still Better Than Bookstack in 2024

When it comes to choosing a documentation platform, two popular options often come to mind: Dokuwiki and Bookstack. Both have their strengths and unique features, but for many users, Dokuwiki still holds a superior edge. Here’s a detailed comparison of the two, highlighting why Dokuwiki remains a better choice for many.

Advantages of Dokuwiki

1. Extensive Plugin and Template Support

  • Extensions via Plugins: Dokuwiki boasts a vast array of plugins that extend its functionality, making it highly customizable.
  • Themes and Templates: Users can easily change the look and feel of their wiki with numerous themes and templates available.

2. User-Friendly Editing