Using MySQL from a Scala Agent
SkillDatabases & dataUsing MySQL from a Scala Golem agent through golem.host.Rdbms.Mysql. Use when the user asks to connect to MySQL, run SQL, or use MySQL from Scala agent code.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Using MySQL from a Scala Agent skill
What this skill tells your AI
The instructions your AI receives, as published by golemcloud/golem in golem-skills/skills/scala/golem-add-mysql-scala/SKILL.md and read by ahel’s review.
The Scala SDK already wraps golem:rdbms/mysql@1.5.0 in golem.host.Rdbms.
Imports
import golem.host.Rdbms
import golem.host.Rdbms._
Open a Connection
Rdbms.Mysql.open("mysql://user:password@localhost:3306/app")
Query Data
MySQL placeholders use ?.
val message =
for {
conn <- Rdbms.Mysql.open("mysql://user:password@localhost:3306/app")
result <- conn.query("SELECT ?", List(MysqlDbValue.VarChar("hello")))
row <- result.rows.headOption.toRight(DbError.Other("query returned no rows"))
value <- row.values.headOption.toRight(DbError.Other("query returned no columns"))
text <- value match {
case MysqlDbValue.VarChar(value)
| MysqlDbValue.Text(value)
| MysqlDbValue.TinyText(value)
| MysqlDbValue.MediumText(value)
| MysqlDbValue.LongText(value)
| MysqlDbValue.FixChar(value) => Right(value)
case other => Left(DbError.Other(s"Unexpected MySQL value: $other"))
}
} yield text
Execute Statements
conn.execute(
"INSERT INTO notes (id, body) VALUES (?, ?)",
List(MysqlDbValue.IntVal(1), MysqlDbValue.VarChar("hello")),
)
Transactions
for {
conn <- Rdbms.Mysql.open(url)
tx <- conn.beginTransaction()
_ <- tx.execute(
"UPDATE notes SET body = ? WHERE id = ?",
List(MysqlDbValue.VarChar("updated"), MysqlDbValue.IntVal(1)),
)
_ <- tx.commit()
} yield ()
Signals
- GitHub stars
- 2k
- Forks
- 212
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
golem-add-mysql-scala- Source
- github.com/golemcloud/golem