if response.status_code == 200: print(f"Successfully saved to Flomo: {content}") return json.dumps(response.json()) else: error_message = f"Failed to save to Flomo. Status code: {response.status_code}, Response: {response.text}" print(error_message) return json.dumps({"error": error_message})
var apiUrl = "https://flomoapp.com/iwh/xxxxxxxxxxxxx/";
using (var httpClient = new HttpClient()) { var payload = new { content = content }; var json = System.Text.Json.JsonSerializer.Serialize(payload); var httpContent = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); var response = await httpClient.PostAsync(apiUrl, httpContent); response.EnsureSuccessStatusCode(); }
Console.WriteLine("写笔记到 Flomo 完成"); } } }
3、创建 mcp-client 控制台项目,Program 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
using ModelContextProtocol.Client; using ModelContextProtocol.Protocol.Transport; using System.Collections.Generic;
var clientTransport = new StdioClientTransport(new StdioClientTransportOptions { Name = "flomo", Command = "dotnet", Arguments = new[] { "/Users/fengwei/Projects/ai-demo/dotnet-mcp-demo/mcp-server/bin/Debug/net8.0/mcp-server.dll" } });
using Microsoft.Extensions.Hosting; using ModelContextProtocol; using ModelContextProtocol.Client; using ModelContextProtocol.Protocol.Transport; using Microsoft.Extensions.DependencyInjection; using System.Text; using System.Text.Json; using System.Net.Http; using System.Net.Http.Json; using Microsoft.Extensions.AI; using OpenAI; using System.ClientModel;
Console.WriteLine("启动 MCP 客户端...");
var clientTransport = new StdioClientTransport(new StdioClientTransportOptions { Name = "flomo", Command = "dotnet", Arguments = new[] { "/Users/fengwei/Projects/ai-demo/dotnet-mcp-demo/mcp-server/bin/Debug/net8.0/mcp-server.dll" } });
// 配置硅基流动API参数 var apiKeyCredential = new ApiKeyCredential("xx"); var aiClientOptions = new OpenAIClientOptions(); aiClientOptions.Endpoint = new Uri("http://localhost:11434/v1"); var aiClient = new OpenAIClient(apiKeyCredential, aiClientOptions) .AsChatClient("qwen2.5:7b");
var chatClient = new ChatClientBuilder(aiClient) .UseFunctionInvocation() .Build();
var mcpTools = await mcpClient.ListToolsAsync(); var chatOptions = new ChatOptions() { Tools = [..mcpTools] };
Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"助手> 请输入想要记录的内容,AI总结后会存入笔记"); while (true) { Console.ForegroundColor = ConsoleColor.White; Console.Write("用户> "); var question = Console.ReadLine();
if (!string.IsNullOrWhiteSpace(question) && question.ToUpper() == "EXIT") break;
var messages = new List<ChatMessage> { new(ChatRole.System, "你是一个笔记助手,请将用户的输入总结为简洁的笔记形式,使用markdown格式。保留关键信息,删除冗余内容。"), new(ChatRole.User, question) };