Skip to content

Instantly share code, notes, and snippets.

View laiso's full-sized avatar
☀️

laiso laiso

☀️
View GitHub Profile
async function listNotebooks() {
const authParams = await getAuthParams();
const { url: n, headers: r, body: o } = await createBatchExecuteRequest(authParams);
const response = await fetch(n.toString(), {
method: "POST",
headers: r,
body: o
});
const text = await response.text();
import * as vscode from 'vscode';
import * as fs from 'fs';
export function activate(context: vscode.ExtensionContext) {
const outputChannel = vscode.window.createOutputChannel('Print Debug Info');
const disposable = vscode.commands.registerCommand('min-cline.RunMain', async () => {
outputChannel.clear();
const diagnostics = vscode.languages.getDiagnostics();
@laiso
laiso / blog.md
Last active February 5, 2025 04:49
Laracon EU 2025 新機能・サービス・アーキテクチャ動向レポート(deep research with o1 pro)

Laracon EU 2025の技術的な発表内容について調査し、新機能、サービス、アーキテクチャの進化に焦点を当てたレポートを作成します。Laravelの最新バージョンに関するアップデート、エコシステムの拡張、パフォーマンスやセキュリティの改善など、開発者向けの重要なポイントをまとめます。

調査が完了次第、詳細をお知らせします。

Laracon EU 2025 新機能・サービス・アーキテクチャ動向レポート

2025年2月3〜4日にアムステルダムで開催された Laracon EU 2025 では、Laravelに関する多数の発表が行われました (Laravel Cloud - リリース直前情報まとめ) Laravel公式サイトの刷新、新たなスターターキット、Laravel Cloudサービスの正式公開、そして次期バージョンLaravel 12の予告など、開発者必見のアップデートが目白押しでした。本レポートでは、それらの新機能・サービス・アーキテクチャの進化について技術的観点から解説します。

Laravel最新バージョンに関するアップデート

@laiso
laiso / blog.md
Last active February 16, 2025 01:41
【MCP】複数サーバーをまとめて管理するクライアント開発のベストプラクティス(Deep research with o1 pro mode)

以下は、複数のMCPサーバーに接続するクライアント側プログラムの開発方法についてまとめたブログ記事です。MCPクライアントの自作経験はあるものの、より実践的なTIPSや設計ノウハウを知りたい開発者向けの内容になっています。


【MCP】複数サーバーをまとめて管理するクライアント開発のベストプラクティス

はじめに

Model Context Protocol(MCP)は、LLM(Large Language Model)やAIツールとのやり取りを標準化するプロトコルとして進化を続けています。現在は STDIO 経由での利用が中心ですが、今後はネットワーク越しのリモート呼び出しが増えることが ロードマップ に示唆されています。

import * as vscode from 'vscode';
/**
* 拡張機能が最初に有効化されると呼び出されるメソッド
*/
export function activate(context: vscode.ExtensionContext) {
// 「extension.generateCodeAnnotation」コマンドを登録
const generateCommand = vscode.commands.registerCommand('myAIextension.generateCodeAnnotation', async () => {
await generateCodeAnnotation();
});
import Anthropic from '@anthropic-ai/sdk';
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
const client = new Anthropic(); // gets API Key from environment variable ANTHROPIC_API_KEY
type MCPServersConfig = {
mcpServers: Record<string, { command: string; args: string[]; env?: Record<string, string> }>;
};
@laiso
laiso / tools.ts
Last active January 18, 2025 15:29
#!/usr/bin/env -S npm run tsn -T
import Anthropic from '@anthropic-ai/sdk';
import { Client } from '@modelcontextprotocol/sdk/client/index';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio';
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types';
const client = new Anthropic(); // gets API Key from environment variable ANTHROPIC_API_KEY
const CLIENT_CONFIGS = [
// call-tool.ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
import { CallToolResultSchema } from "@modelcontextprotocol/sdk/types.js";
async function main() {
const client = new Client(
{
name: "mcp-typescript test client",
version: "0.1.0",
@laiso
laiso / lama3.1-cline-8b.Modelfile
Last active January 5, 2025 14:07
lama3.1-cline-8b.Modelfile. usage: 'llama create llama3.1-cline:8b -f ./lama3.1-cline-8b.Modelfile'
FROM llama3.1:8b
PARAMETER num_ctx 20480
TEMPLATE """
{{- if or .System .Tools }}<|start_header_id|>system<|end_header_id|>
{{- if .System }}
{{ .System }}
{{- end }}
@laiso
laiso / ContentView.swift
Last active December 12, 2024 16:47
AI Agent as "Food Critic Who Eats Anything,"
import SwiftUI
import AVFoundation
struct ContentView: View {
@State private var isRecording = false
@State private var transcription = ""
@State private var isConnected = false
@State private var accumulatedAudioData = Data()
@State private var webSocketTask: URLSessionWebSocketTask?
@State private var errorMessage: String?